2016-12-14 45 views
0

我有一個使用VBA從Visio獲取或啓動Excel的宏,並創建一個工作簿以附帶活動的Visio繪圖。類型不匹配錯誤設置Excel應用計算

當宏去關閉Excel自動計算時,我得到一個類型不匹配錯誤,但它並不總是給出該錯誤。

爲什麼代碼有時會工作,而不是其他人?

Dim XLCalcMode As Long 
XLCalcMode = XLApp.Calculation 
XLApp.Calculation = xlCalculationManual 

回答

1

Excel應用程序必須至少有一個工作簿打開,然後才能在應用程序對象上設置計算屬性。

將.Calculation設置移至在打開工作簿之後。

0

我不知道的Visio,我去與一般的假設,它不共享Excel的枚舉,像XlCalculation

所以你:

  • 要麼使用實際枚舉值

    例如xlCalculationManual的值爲-4135,那麼您想要編碼

    XLApp.Calculation = -4135 
    
  • 或使用Excel枚舉名通過引用Excel應用程序對象

    XLApp.Calculation = XLApp.xlCalculationManual 
    
+0

我使用後期綁定,但我都定義了Excel常量。相反,我發現,除非打開工作簿,否則只能在Excel的應用程序上設置.Calculation屬性。 –