2016-12-14 38 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属性。 –