excel - Excel 宏正在打印所有工作表,而不仅仅是选择一个
问题描述
我有一个通过单击按钮启动的 excel 宏。宏应该做的是打印出一个excel工作表并在每次打印后在一个单元格中增加值。一切正常,除了宏还打印启动宏的工作表(即使在代码中未选择该工作表..)
这是我的宏代码:
Sub Painike_Napsauta()
Dim i As Long
If MsgBox("Tulosta?", vbYesNo + vbQuestion) = vbNo Then Exit Sub
Cancel = True
Application.EnableEvents = False
Application.Dialogs(xlDialogPrint).Show
Sheets("Lappu").Range("C1").Value = Sheets("Tulosta").Range("C2").Value
For i = Sheets("Tulosta").Range("C3").Value To Sheets("Tulosta").Range("C4").Value
Sheets("Lappu").Range("C2").Value = i
Sheets("Lappu").PrintOut
Next i
Application.EnableEvents = True
End Sub
所以我只想在每次迭代中打印“Lappu”表,但由于某种原因,“Tulosta”表也被打印,它是打印的第一页。
问题出在哪里?
解决方案
这是我的问题的解决方法:
Sub Painike_Napsauta()
Dim i As Long
If MsgBox("Tulosta?", vbYesNo + vbQuestion) = vbNo Then Exit Sub
Cancel = True
Application.EnableEvents = False
Sheets("Lappu").Range("C1").Value = Sheets("Tulosta").Range("C2").Value
Sheets("Lappu").Range("C2").Value = Sheets("Tulosta").Range("C3").Value
Sheets("Lappu").Activate
Application.Dialogs(xlDialogPrint).Show
For i = Sheets("Lappu").Range("C2").Value To Sheets("Tulosta").Range("C4").Value - 1
Sheets("Lappu").Range("C2").Value = i + 1
ActiveSheet.PrintOut
Next i
Application.EnableEvents = True
End Sub
因此,我首先使用 .Activate 选择“Lappu”表活动表,然后使用 ActiveSheet.PrintOut 打印活动表