簡體   English   中英

使用參數調用Excel VBA子例程

[英]Calling excel VBA subroutine with arguments

我想創建一個接受范圍作為參數的子例程。 像這樣:

Sub Test(dataRange As Range)

    Sheet2.Range("A1").Cells.value = dataRange.Cells(1, 1)

End Sub

但是,當我嘗試在Excel上選擇范圍並運行它時,出現“參考無效”錯誤。

注意:我試圖通過進入“開發人員”標簽並單擊“宏”按鈕來運行此程序。 在其中輸入Test($A$2:$B$4) ,然后出現錯誤。

有沒有一種方法可以從Excel電子表格中調用自定義VBA子例程並將參數傳遞給它?

謝謝

盡管這不是一個普遍的答案,但它應該可以滿足您的目的:

Sub Test(Optional dataRange As Range = Nothing)
    If dataRange is Nothing then Set dataRange = Range(Selection.Address)
    Sheet2.Range("A1").Cells.value = dataRange.Cells(1, 1)

End Sub

從宏菜單中,只需鍵入Test然后單擊“運行”按鈕。

這將使用當前Selection作為數據范圍。

或者,使用InputBox捕獲range參數:

Sub Test2()
    Dim dataRange as Range
    Set dataRange = Application.InputBox("Select range", Type:=8)
    If dataRange is Nothing then Exit Sub
    Sheet2.Range("A1").Cells.value = dataRange.Cells(1, 1)

End Sub

您可能需要在以下范圍內使用引號:

測試(范圍(“ $ A $ 2:$ B $ 4”))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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