นี่คือรหัสที่คุณต้องการแทง การซ่อนและการซ่อนแถวเป็นเรื่องง่ายถ้าคุณรู้วิธี ฉันพิมพ์แผ่นงานโดยใช้ตัวบันทึกแมโครเพื่อให้คุณสามารถดูว่าคุณสามารถปรับแต่งการพิมพ์ได้อย่างไรหากคุณต้องการ ฉันจะตั้งค่าคีย์ลัดเพื่อเรียกใช้แมโครนี้
Option Explicit
Sub PrintNonBlankColA()
Dim RowCrnt As Integer
Dim RowLast As Integer
' Note: This operates on the active worksheet
Application.ScreenUpdating = False
RowLast = Cells.SpecialCells(xlCellTypeLastCell).Row
' Hide all rows with a used cell and column "A" empty
For RowCrnt = 1 To RowLast
If IsEmpty(Cells(RowCrnt, "A")) Then
Range(RowCrnt & ":" & RowCrnt).EntireRow.Hidden = True
End If
Next
' For the following statements, I switched on the macro recorder,
' printed a sheet with all the headers and footers I wanted,
' switched off the macro recorder and copied the code out of the
' saved macro.
' Consider: .CenterHeader = "Activities for Acme Inc"
' If you name the worksheets for the client, the following would
' give you a heading for the appropriate client:
' .CenterHeader = "Activities for " & ActiveSheet.Name
With ActiveSheet.PageSetup
.PrintTitleRows = ""
.PrintTitleColumns = ""
End With
ActiveSheet.PageSetup.PrintArea = ""
With ActiveSheet.PageSetup
.LeftHeader = ""
.CenterHeader = "Activities for Acme Inc"
.RightHeader = ""
.LeftFooter = "&D"
.CenterFooter = "Page &P of &N"
.RightFooter = "Copyright Nadir Co."
.LeftMargin = Application.InchesToPoints(0.75)
.RightMargin = Application.InchesToPoints(0.75)
.TopMargin = Application.InchesToPoints(1)
.BottomMargin = Application.InchesToPoints(1)
.HeaderMargin = Application.InchesToPoints(0.5)
.FooterMargin = Application.InchesToPoints(0.5)
.PrintHeadings = False
.PrintGridlines = False
.PrintComments = xlPrintNoComments
.CenterHorizontally = False
.CenterVertically = False
.Orientation = xlPortrait
.Draft = False
.PaperSize = xlPaperA4
.FirstPageNumber = xlAutomatic
.Order = xlDownThenOver
.BlackAndWhite = False
.Zoom = 100
.PrintErrors = xlPrintErrorsDisplayed
End With
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
' Unhide all rows
Cells.EntireRow.Hidden = False
End Sub
การโหลดโค้ดด้านบนไปยังโมดูล
จากภายใน Excel:
- เลือก
Tools
แล้วนั้นMacro
หรือคลิกVisual Basic Editor
Alt+F11
คุณอาจจะเห็น Project Explorer อยู่ทางซ้ายมือหน้าต่างทันทีที่ด้านล่างโดยมีสีเทาเป็นส่วนใหญ่ของหน้าจอ
- เลือกแล้ว
Insert
Module
ส่วนสีเทาจะเป็นสีขาว
- คัดลอกและวางรหัสของฉันลงในส่วนสีขาวทันที ขณะนี้สามารถเรียกใช้แมโครกับชีตใดก็ได้
การใช้มาโคร
- สลับเป็น Excel
- เลือก
Tools
แล้วนั้นMacro
หรือคลิกMacros...
Alt+F8
หน้าต่างแมโครขนาดเล็กจะปรากฏขึ้น คุณจะมีมาโครเพียงตัวเดียวดังนั้นจึงจะถูกเลือกและRun
ปุ่มจะทำงาน
คุณสามารถเรียกใช้แมโครได้โดยคลิกAlt+F8
แล้วEnter
แต่คุณอาจพบว่าสะดวกกว่าต่อไปนี้
Options
จากหน้าต่างแมโครเลือก ตอนนี้คุณจะเห็นหน้าต่างตัวเลือกแมโครขนาดเล็ก
- ใส่ตัวอักษร (ฉันมักจะใช้ด) ลงในช่องเล็ก ๆ น้อย ๆ
OK
และคลิก
- ปิดหน้าต่างแมโคร
ตอนนี้คุณสามารถสลับไปยังแผ่นงานของลูกค้าที่เหมาะสมและคลิกCtrl+q
เพื่อเรียกใช้แมโคร
ปรับแมโครให้เหมาะกับความต้องการของคุณ
กลางรหัสของฉันคือความคิดของฉันของวิธีคุณอาจตั้งค่ารายงานด้วย "กิจกรรมสำหรับ Acme Inc" ที่ด้านบนและวันที่หมายเลขหน้าและลิขสิทธิ์ที่ด้านล่าง
แทนที่รหัสนี้ดังนี้:
- จาก Excel เลือก
Tools
แล้วนั้นMacro
Record New macro
คุณเห็นหน้าต่างบันทึกแมโครขนาดเล็ก
- ตรวจสอบให้แน่ใจว่ากล่องข้อความภายใต้ "เก็บแมโครใน:" พูดว่า "สมุดงานนี้"
OK
คลิก หน้าต่างจะหายไป คุณอาจเห็นหน้าต่างเล็ก ๆ ที่มีปุ่มรูปสี่เหลี่ยมกำกับการบันทึกหยุด หากหน้าต่างนี้ปรากฏขึ้นให้ข้ามไปครู่หนึ่ง
- พิมพ์รายงานลูกค้าด้วยส่วนหัวท้ายกระดาษระยะขอบ ฯลฯ ที่คุณต้องการ
- หากคุณเห็นหน้าต่างเล็ก ๆ ให้คลิกมัน หากคุณไม่สามารถดูได้เลือก
Tools
แล้วนั้นMacro
Stop Recording
- สลับไปยัง Visual Basic Editor จะมีโมดูลใหม่ คลิกที่มันในหน้าต่างโครงการ Explorer
- คุณจะเห็นงบทั้งหมดที่จะพิมพ์รายงานลูกค้าในแบบที่คุณชอบและ
Sub Macro1()
End Sub
- คัดลอกข้อความเหล่านั้น (ไม่ใช่แบบย่อยและแบบปลาย) และวางไว้ด้านบนของข้อความเทียบเท่าในแมโครของฉัน
หากคุณไม่รวมชื่อลูกค้าในหัวกระดาษและท้ายกระดาษรายงานมาโครของคุณจะพร้อมใช้งาน ฉันให้ตัวอย่างหนึ่งในรหัสของฉันซึ่งฉันใช้ชื่อแผ่นงานเป็นส่วนหัวของรายงาน โดยไม่ทราบข้อกำหนดที่แน่นอนของคุณฉันไม่สามารถแม่นยำมากขึ้น แต่ฉันหวังว่านี่จะช่วยให้คุณเริ่มต้น