共用方式為


ByRef 引數類型不符

預設會傳遞 ByRef引數 (透過參考),預期在程序中必須具備精確的資料類型。 此錯誤發生的原因與解決方案如下:

  • 您傳遞的某個類型引數,無法強制型轉給預期的類型。

    例如,如果您在預期為 Long 時嘗試傳送 Integer 變數,便會發生此錯誤。 如果想要發生強制型轉,則即使它會造成資訊遺失,您仍可以在其自己的一組括號中傳遞引數。

    例如,若要將 Variant 引數 MyVar 傳遞至預期為 Integer 的程序,您可以如下所示撰寫呼叫:

      Dim MyVar 
      MyVar = 3.1415 
      Call SomeSub((MyVar)) 
    
      Sub SomeSub (MyNum As Integer) 
      MyNum = MyNum + MyNum 
      End Sub
    

    將引數放在其自己的一組括號中,會強制將它評估為運算式。 在此評估期間,數字的小數部分會四捨五入 (非截斷),以讓它符合預期的引數類型。 評估的結果會放置在暫存位置中,而程序收到暫存位置的參考。 因此,原始的 MyVar 會保留其值。

    注意事項

    若不指定變數的類型,則變數會使用預設的類型 Variant。 這並不總是明顯的。 例如,下列程式碼會宣告兩個變數,第一個 MyVarVariant,第二個 AnotherVarInteger

     Dim MyVar, AnotherVar As Integer 
    

如需詳細資訊,請選取有疑問的項目並按 F1 (在 Windows 中) 或 HELP (在 Macintosh 上)。

支援和意見反應

有關於 Office VBA 或這份文件的問題或意見反應嗎? 如需取得支援服務並提供意見反應的相關指導,請參閱 Office VBA 支援與意見反應