谁帮我修改一下打印机EXCEL VBA代码···

2025-04-04 18:55:38
推荐回答(3个)
回答1:

你的代码中存在很明显的错误!
首先,必须保证工作表“正面”W3单元格的内容为正整数,否则打印份数会出错;
其次,With Worksheets("限电") 下面连续7行出现 .PageSetup ,代码重复繁琐;
另外,End With 上面两行应为一行且位置不正确。
正确的代码应为:
i = Worksheets("正面").Range("W3")
If IsNumeric(i) = False Then GoTo qc
If i > 0 And i = Int(i) Then
With Worksheets("限电").PageSetup
.LeftMargin = Application.CentimetersToPoints(0)
.RightMargin = Application.CentimetersToPoints(0)
.TopMargin = Application.CentimetersToPoints(1.7)
.BottomMargin = Application.CentimetersToPoints(0.7)
.HeaderMargin = Application.CentimetersToPoints(0.8)
.FooterMargin = Application.CentimetersToPoints(0.7)
.Orientation = xlLandscape
.Zoom = 72
End With
Worksheets("限电").PrintOut From:=1, To:=2, Copies:=i, Collate:=True
End If
qc:
Worksheets("正面").Range("W3").ClearContents

回答2:

ActiveWindow.SelectedSheets.PrintOut Copies:=工作表“正面”单元格w3份, Collate:=True '[逐份打印]

你这句代码错了,所以会打印出正面工作表的内容

只要改上面那句 .PrintOut From:=1, To:=2
改成:
.PrintOut From:=1, To:=2, Copies:=Worksheets("正面").Range("W3"), Collate:=True

Worksheets("正面").Range("W3").ClearContents 运行不了?不可能吧?

回答3:

ActiveWindow.SelectedSheets.PrintOut Copies:=SHEETS("正面").[W3], Collate:=True '[逐份打印]
End With

Worksheets("正面").Range("W3").SELECT
SELECTION.ClearContents