Excel宏正在打印所有工作表,而不仅仅是选定的一张

时间:2019-06-13 10:25:13

标签: excel vba

我有一个通过单击按钮启动的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”表,这是第一页。

问题出在哪里?

1 个答案:

答案 0 :(得分:0)

这是解决我的问题的一种解决方法:

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打印出活动表