Note: The other languages of the website are Google-translated. Back to English
English English

วิธีพิมพ์คอลัมน์ยาวในหน้าเดียวใน Excel

สมมติว่าคุณมีรายการข้อมูลยาว ๆ ในคอลัมน์อาจจะ 200 แถวและตอนนี้คุณต้องพิมพ์ แต่เมื่อคุณพิมพ์จะใช้กระดาษประมาณ 5 หน้าโดยมีเพียงคอลัมน์เดียวที่ด้านซ้ายและมีช่องว่างสีขาว ด้านขวา ใน Word คุณสามารถจัดคอลัมน์ได้ แต่ Excel ไม่มีฟังก์ชันนี้ คุณจะพิมพ์ข้อมูลรายการยาวในหน้าเดียวเพื่อประหยัดกระดาษได้อย่างไร?

พิมพ์คอลัมน์ยาวในหน้าเดียวด้วยสูตร

พิมพ์คอลัมน์ยาวในหน้าเดียวด้วยรหัส VBA

พิมพ์คอลัมน์แบบยาวในหน้าเดียวด้วย Kutools for Excel

แท็บ Office เปิดใช้งานการแก้ไขและเรียกดูแบบแท็บใน Office และทำให้งานของคุณง่ายขึ้นมาก ...
Kutools สำหรับ Excel ช่วยแก้ปัญหาส่วนใหญ่ของคุณและเพิ่มผลผลิตของคุณได้ถึง 80%
  • ใช้ซ้ำอะไรก็ได้: เพิ่มสูตรที่ใช้มากที่สุดหรือซับซ้อนแผนภูมิและสิ่งอื่นใดในรายการโปรดของคุณและนำกลับมาใช้ใหม่ได้อย่างรวดเร็วในอนาคต
  • คุณสมบัติข้อความมากกว่า 20 รายการ: แยกหมายเลขจากสตริงข้อความ แยกหรือลบบางส่วนของข้อความ แปลงตัวเลขและสกุลเงินเป็นคำภาษาอังกฤษ
  • ผสานเครื่องมือ: สมุดงานและแผ่นงานหลายเล่มเป็นหนึ่งเดียว ผสานหลายเซลล์ / แถว / คอลัมน์โดยไม่สูญเสียข้อมูล รวมแถวและผลรวมที่ซ้ำกัน
  • แยกเครื่องมือ: แยกข้อมูลออกเป็นหลายแผ่นตามมูลค่า; สมุดงานหนึ่งเล่มเป็นไฟล์ Excel, PDF หรือ CSV หลายไฟล์ หนึ่งคอลัมน์ถึงหลายคอลัมน์
  • วางการข้าม แถวที่ซ่อน / กรอง; นับและผลรวม โดย Background Color; ส่งอีเมลส่วนบุคคลไปยังผู้รับหลายคนในกลุ่ม
  • ซุปเปอร์กรอง: สร้างโครงร่างตัวกรองขั้นสูงและใช้กับแผ่นงานใด ๆ ประเภท ตามสัปดาห์วันความถี่และอื่น ๆ กรอง by ตัวหนาสูตรคอมเม้น ...
  • คุณสมบัติที่ทรงพลังมากกว่า 300 รายการ ทำงานร่วมกับ Office 2007-2019 และ 365; รองรับทุกภาษา ใช้งานง่ายในองค์กรหรือองค์กรของคุณ

ลูกศรสีฟ้าฟองขวา พิมพ์คอลัมน์ยาวในหน้าเดียวด้วยสูตร


ที่นี่ฉันสามารถแนะนำสูตรยาว ๆ เพื่อแก้ปัญหานี้ได้โปรดทำตามนี้:

1. ในแผ่นงานใหม่ของสมุดงานที่ใช้งานอยู่ให้ป้อนสูตร =IF(OFFSET(Sheet1!$A$1,(COLUMN()-1)*45+ROW()-1,0)="","",OFFSET(Sheet1!$A$1,(COLUMN()-1)*45+ROW()-1,0)) ลงในเซลล์ A1

หมายเหตุ: Sheet1 คือแผ่นงานที่มีรายการแบบยาวที่คุณต้องการจัดเรียงคอลัมน์

45 คือหมายเลขแถวที่คุณต้องการแสดงรายการข้อมูลในคอลัมน์

เป็นตัวแปรทั้งหมดและคุณสามารถเปลี่ยนแปลงได้ตามความต้องการของคุณ

2. จากนั้นเลือกเซลล์ A1 แล้วลากที่จับเติมลงไปที่แถว 45 จากนั้นลากที่จับเติมไปทางขวาจนกว่าข้อมูลจะปรากฏ และคอลัมน์ยาวได้ถูกแบ่งออกเป็นหลายคอลัมน์เพื่อให้พอดีกับหนึ่งหน้าในแผ่นงานใหม่ ดูภาพหน้าจอ:

เอกสารพิมพ์ยาวคอลัมน์ 1


ลูกศรสีฟ้าฟองขวา พิมพ์คอลัมน์ยาวในหน้าเดียวด้วยรหัส VBA

รหัส VBA ต่อไปนี้ยังช่วยคุณแบ่งรายการข้อมูลยาว ๆ ออกเป็นหลายคอลัมน์เพื่อให้คุณสามารถพิมพ์ข้อมูลและประหยัดกระดาษได้

1. กด ALT + F11 และจะเปิดไฟล์ Microsoft Visual Basic สำหรับแอปพลิเคชัน หน้าต่าง

2. คลิก สิ่งที่ใส่เข้าไป > โมดูลและวางรหัสต่อไปนี้ในหน้าต่างโมดูล

Sub SingleToMultiColumn()
    Dim rng As Range
    Dim iCols As Integer
    Dim lRows As Long
    Dim iCol As Integer
    Dim lRow As Long
    Dim lRowSource As Long
    Dim x As Long
    Dim wks As Worksheet
    Set rng = Application.InputBox _
      (prompt:="Select the range to convert", _
      Type:=8)
    iCols = InputBox("How many columns do you want?")
    lRowSource = rng.Rows.Count
    lRows = lRowSource / iCols
    If lRows * iCols <> lRowSource Then lRows = lRows + 1
    Set wks = Worksheets.Add
    lRow = 1
    x = 1
    For iCol = 1 To iCols
        Do While x <= lRows And lRow <= lRowSource
            Cells(x, iCol) = rng.Cells(lRow, 1)
            x = x + 1
            lRow = lRow + 1
        Loop
        x = 1
    Next
End Sub

3. จากนั้นกดปุ่ม F5 เพื่อเรียกใช้รหัสนี้และเลือกข้อมูลรายการที่คุณต้องการแบ่งในกล่องโต้ตอบที่โผล่ขึ้นมาดูภาพหน้าจอ:

เอกสารพิมพ์ยาวคอลัมน์ 2

4. คลิก OKและป้อนจำนวนคอลัมน์ที่คุณต้องการแบ่ง ดูภาพหน้าจอ:

เอกสารพิมพ์ยาวคอลัมน์ 3

5. และคลิก OKคอลัมน์แบบยาวถูกแบ่งออกเป็นห้าคอลัมน์ในแผ่นงานใหม่ ดูภาพหน้าจอ:

เอกสารพิมพ์ยาวคอลัมน์ 4 -2 เอกสารพิมพ์ยาวคอลัมน์ 5

ลูกศรสีฟ้าฟองขวา พิมพ์คอลัมน์แบบยาวในหน้าเดียวด้วย Kutools for Excel

ทั้งสูตรยาวและรหัส VBA อาจเป็นเรื่องยากสำหรับคุณที่นี่ฉันสามารถแนะนำวิธีที่ง่ายและสะดวกในการแก้ปัญหานี้ Kutools สำหรับ Excel's พิมพ์หลายคอลัมน์ ฟังก์ชันสามารถช่วยคุณแบ่งคอลัมน์ยาวออกเป็นหลายคอลัมน์ได้อย่างรวดเร็วเพื่อให้คุณสามารถพิมพ์ได้อย่างสมเหตุสมผล

Kutools สำหรับ Excel มีเครื่องมือ Excel ที่มีประโยชน์มากกว่า 300 รายการ ทดลองใช้ฟรีโดยไม่มีข้อ จำกัด ใน 30 วัน Get it Now.

เมื่อคุณติดตั้ง Kutools for Excel แล้วคุณสามารถทำตามขั้นตอนต่อไปนี้:

1. คลิก Enterprise > พิมพ์หลายคอลัมน์ดูภาพหน้าจอ:

เอกสารพิมพ์ยาวคอลัมน์ 6

2. ใน พิมพ์หลายคอลัมน์ กล่องโต้ตอบ:

  • คลิกตัวแรก ปุ่ม doc เพื่อเลือกชื่อของช่วงจากนั้นคลิกปุ่มที่สอง ปุ่ม docเพื่อเลือกคอลัมน์ที่คุณต้องการแบ่ง
  • จากนั้นระบุจำนวนแถวที่คุณต้องการใส่ต่อหน้า แถวต่อหน้าที่พิมพ์และป้อนจำนวนคอลัมน์ที่คุณต้องการในหน้าเดียว จำนวนกลุ่ม. ดูภาพหน้าจอ:

เอกสารพิมพ์ยาวคอลัมน์ 7

3. จากนั้นคลิก OKข้อมูลรายการยาวถูกแบ่งออกเป็นห้าคอลัมน์ในหนึ่งหน้า ดูภาพหน้าจอ:

เอกสารพิมพ์ยาวคอลัมน์ 8 -2 เอกสารพิมพ์ยาวคอลัมน์ 9

หมายเหตุ:

1. ชื่อเรื่องจะถูกเพิ่มก่อนทุกคอลัมน์

2. หากคุณตรวจสอบ สร้างลิงค์ด้วยแผ่นงานที่ใช้งานอยู่ ตัวเลือกข้อมูลแผ่นงานใหม่สามารถเชื่อมโยงกับแหล่งข้อมูล

หากคุณต้องการทราบข้อมูลเพิ่มเติมเกี่ยวกับคุณลักษณะนี้โปรดคลิก พิมพ์หลายคอลัมน์.


เครื่องมือเพิ่มประสิทธิภาพการทำงานในสำนักงานที่ดีที่สุด

Kutools สำหรับ Excel ช่วยแก้ปัญหาส่วนใหญ่ของคุณและเพิ่มผลผลิตของคุณได้ถึง 80%

  • นำมาใช้ใหม่: ใส่อย่างรวดเร็ว สูตรที่ซับซ้อนแผนภูมิ และสิ่งที่คุณเคยใช้มาก่อน เข้ารหัสเซลล์ ด้วยรหัสผ่าน; สร้างรายชื่อผู้รับจดหมาย และส่งอีเมล ...
  • ซุปเปอร์ฟอร์มูล่าบาร์ (แก้ไขข้อความและสูตรหลายบรรทัดได้อย่างง่ายดาย); การอ่านเค้าโครง (อ่านและแก้ไขเซลล์จำนวนมากได้อย่างง่ายดาย); วางลงในช่วงที่กรองแล้ว...
  • ผสานเซลล์ / แถว / คอลัมน์ โดยไม่สูญเสียข้อมูล แยกเนื้อหาของเซลล์ รวมแถว / คอลัมน์ที่ซ้ำกัน... ป้องกันเซลล์ซ้ำ; เปรียบเทียบช่วง...
  • เลือกซ้ำหรือไม่ซ้ำ แถว; เลือกแถวว่าง (เซลล์ทั้งหมดว่างเปล่า); Super Find และ Fuzzy Find ในสมุดงานจำนวนมาก สุ่มเลือก ...
  • สำเนาถูกต้อง หลายเซลล์โดยไม่เปลี่ยนการอ้างอิงสูตร สร้างการอ้างอิงอัตโนมัติ ถึงหลายแผ่น ใส่สัญลักษณ์แสดงหัวข้อย่อย, กล่องกาเครื่องหมายและอื่น ๆ ...
  • แยกข้อความ, เพิ่มข้อความ, ลบตามตำแหน่ง, ลบ Space; สร้างและพิมพ์ผลรวมย่อยของเพจ แปลงระหว่างเนื้อหาของเซลล์และความคิดเห็น...
  • ซุปเปอร์ฟิลเตอร์ (บันทึกและใช้โครงร่างตัวกรองกับแผ่นงานอื่น ๆ ); การเรียงลำดับขั้นสูง ตามเดือน / สัปดาห์ / วันความถี่และอื่น ๆ ตัวกรองพิเศษ โดยตัวหนาตัวเอียง ...
  • รวมสมุดงานและแผ่นงาน; ผสานตารางตามคอลัมน์สำคัญ แยกข้อมูลออกเป็นหลายแผ่น; Batch แปลง xls, xlsx และ PDF...
  • คุณสมบัติที่ทรงพลังมากกว่า 300 รายการ. รองรับ Office / Excel 2007-2019 และ 365 รองรับทุกภาษา ใช้งานง่ายในองค์กรหรือองค์กรของคุณ ทดลองใช้ฟรี 30 วันเต็ม รับประกันคืนเงิน 60 วัน
kte แท็บ 201905

แท็บ Office นำอินเทอร์เฟซแบบแท็บมาที่ Office และทำให้งานของคุณง่ายขึ้นมาก

  • เปิดใช้งานการแก้ไขและอ่านแบบแท็บใน Word, Excel, PowerPoint, ผู้จัดพิมพ์, Access, Visio และโครงการ
  • เปิดและสร้างเอกสารหลายรายการในแท็บใหม่ของหน้าต่างเดียวกันแทนที่จะเป็นในหน้าต่างใหม่
  • เพิ่มผลผลิตของคุณ 50% และลดการคลิกเมาส์หลายร้อยครั้งให้คุณทุกวัน!
ด้านล่าง officetab
จัดเรียงความคิดเห็นโดย
ความคิดเห็น (13)
ยังไม่มีการให้คะแนน เป็นคนแรกที่ให้คะแนน!
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี ฉันมีคำถามเกี่ยวกับตัวเลือกที่สอง "พิมพ์คอลัมน์ยาวในหน้าเดียวด้วยรหัส VBA" หากฉันมีมากกว่าหนึ่งคอลัมน์ในช่วง ฉันจะใช้รหัสเดียวกันได้อย่างไร สมมติว่าช่วงของ "$A$2:$C$118" ฉันจะทำอย่างไร ขอบคุณ.
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ขอบคุณสำหรับข้อมูล! มันมีประโยชน์มากและใช้งานง่าย - แม้สำหรับผู้ที่ไม่มีทักษะด้านคอมพิวเตอร์ที่แข็งแกร่ง (ฉันใช้วิธีแรก)
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
หลังจากค้นหาอินเทอร์เน็ตเป็นเวลาหลายชั่วโมง ฉันก็เจอสิ่งนี้ มันเป็นสิ่งที่ฉันกำลังมองหา ทำได้ดีมากและขอบคุณที่สละเวลาเพื่องานนี้
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ท่านที่รัก ขอบคุณสำหรับงานนี้ รหัส VBA นี้มีประโยชน์มากสำหรับงานของฉัน ฉันดีใจที่จะทำงานให้เสร็จภายในไม่กี่วินาที ขอบคุณ. ....
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
คุณสามารถใช้สูตรง่ายๆ =OFFSET(Sheet1!$A$1,(ROW()-2)*5+COLUMN(),0) เพื่อให้ข้อมูลไหลในแนวนอนใน 5 คอลัมน์ จากนั้นคุณสามารถเลือกขนาดหน้า พิมพ์แถวแรกในแต่ละหน้า ฯลฯ เรียบง่าย เรียบร้อย ไม่มี VBA
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
มีวิธีแก้ไขสูตรนี้ให้ทำงานกับ 3 คอลัมน์แทนที่จะเป็น 1 หรือไม่?
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ฉันจะสนใจวิธีแก้ปัญหาเช่นนี้เช่นกัน
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สูตรนี้ไปไหน? ฉันกำลังพยายามพิมพ์หลายแถวโดยมีหลายคอลัมน์ในหน้าเดียวในรูปแบบหลายแถว คล้ายกับสิ่งนี้:

จอห์น สมิธ สัปดาห์ที่ 1
จอห์น สมิธ สัปดาห์ที่ 2
ผลรวมของจอห์น สมิธ


ฉันมีมากกว่า 100 แถวที่มีมากถึงIJ
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ขอขอบคุณ! สูตรทำงานได้อย่างราบรื่น!
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
หรือคุณสามารถคัดลอกตารางแล้ววางลงในเอกสาร word โดยมีคอลัมน์กี่คอลัมน์ก็ได้
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ฉันมีคอลัมน์ 10,000 ตัวเลขและมาโคร VBA จะให้ตารางในหลายหน้า อย่างไรก็ตาม ฉันอยากให้แต่ละหน้าจัดเรียงตามตัวเลขมากกว่าคอลัมน์ ความช่วยเหลือใด ๆ ที่ชื่นชม
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ฉันมีคอลัมน์ที่มีตัวเลขไม่ซ้ำกัน 10,000 ตัว จัดเรียงทั้งหมดแล้ว รหัส VBA มีตาราง แต่คอลัมน์จะถูกจัดเรียงทีละรายการ
ฉันอยากให้แต่ละหน้าจัดเรียงเป็นตัวเลขเพื่อให้ง่ายต่อการติดตามข้อมูลทีละหน้า ข้อเสนอแนะใด ๆ ยินดีต้อนรับมากที่สุด
คี ธ
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี แพตเตอร์สัน
บางทีรหัส VBA ต่อไปนี้สามารถช่วยคุณได้:
Sub SingleToMultiColumn()
    Dim xRng As Range
    Dim xCount As Integer
    Dim xICols As Integer
    Dim xLRows As Long
    Dim xICol As Integer
    Dim xLRow As Long
    Dim xLRowSource As Long
    Dim xRowNum As Long
    Dim xFCount, xFNum, xFNum_R, xFNum_C As Long
    Dim x As Long
    Dim xWst As Worksheet
    Dim xJ As Integer
    
    Set xRng = Application.InputBox(prompt:="Select the range to convert", Type:=8)
    xICols = InputBox("How many columns do you want?")
    xRowNum = InputBox("How many rows do you want in a page?")
    xCount = xRng.Count
    xFCount = Fix(xCount / (xICols * xRowNum))
    If xICols * xRowNum * xFCount < xCount Then xFCount = xFCount + 1
    Set xWst = Worksheets.Add
    xJ = 0
    Application.ScreenUpdating = False
    For xFNum = 1 To xFCount
        If xJ = xCount Then Exit For
        For xFNum_C = 1 To xICols
            If xJ = xCount Then Exit For
            For xFNum_R = 1 To xRowNum
                If xJ = xCount Then Exit For
                xWst.Cells((xFNum - 1) * xRowNum + xFNum_R, xFNum_C) = xRng.Item(xJ + 1)
                xJ = xJ + 1
            Next
        Next
    Next
     Application.ScreenUpdating = True
End Sub



โปรดลอง หวังว่าจะช่วยคุณได้!
มีความคิดเห็นยังไม่มีการโพสต์ที่นี่
แสดงความคิดเห็นของคุณ
โพสต์ในฐานะแขก
×
ให้คะแนนโพสต์นี้:
0   ตัวอักษร
สถานที่แนะนำ