[英]Excel vba code to print
因此,在大家的幫助下,我制作了一個宏,該宏可以讀取單數列並找到最后一個有數據輸入的單元格。 然后,我想添加嵌套的if if elseif語句,該語句將根據列出的最后一個單元格告訴它打印x頁數。 這是即時通訊使用的代碼。 我究竟做錯了什么?
Sub LastRowInOneColumn()
'Updateby20150305
Dim xLastRow As Long
With Application.ActiveSheet
xLastRow = .Cells(.Rows.Count, "B").End(xlUp).Row
End With
MsgBox xLastRow
If xLastRow = "22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,30,40,41,42,43,44,45" Then
Application.Dialogs(xlDialogPrinterSetup).Show
'Worksheets("Sheet1").PrintOut From:=1, To:=1, Preview:=True
End If
End Sub
如果我理解正確,請嘗試此
Sub LastRowInOneColumn()
'Updateby20150305
Dim xLastRow As Long
With Application.ActiveSheet
xLastRow = .Cells(.Rows.Count, "B").End(xlUp).Row
End With
MsgBox xLastRow
If xLastRow >= 22 And xLastRow <= 45 Then
Application.Dialogs(xlDialogPrinterSetup).Show
'Worksheets("Sheet1").PrintOut From:=1, To:=1, Preview:=True
End If
End Sub
在這種情況下,我更喜歡Select Case
。 我還建議明確說明要考慮的工作表,而不是ActiveSheet
。 如果有多個工作表,則可以將工作表的參數傳遞給該子表,然后從另一個子表中調用。
Option Explicit
Sub LastRowInOneColumn()
Dim MySheet As Worksheet
Set MySheet = Worksheets("Sheet1")
With MySheet
Dim LastRow As Long
LastRow = .Cells(.Rows.Count, "B").End(xlUp).Row
Select Case True
Case LastRow > 21 And LastRow < 46
Application.Dialogs(xlDialogPrinterSetup).Show
'Worksheets("Sheet1").PrintOut From:=1, To:=1, Preview:=True
End Select
End With
End Sub
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.