簡體   English   中英

Excel VBA代碼進行打印

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM