键入不匹配错误设置Excel应用程序计算

时间:2016-12-14 16:56:17

标签: excel vba

我有一个宏,可以使用VBA从Visio获取或启动Excel,并创建一个工作簿以配合活动的Visio绘图。

当宏关闭Excel自动计算时,我得到一个类型不匹配错误,但它并不总是给出错误。

为什么代码有时会起作用,而不是其他代码?

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

2 个答案:

答案 0 :(得分:3)

Excel应用程序必须至少打开一个工作簿才能在Application对象上设置Calculation属性。

将.Calculation设置移动到打开工作簿之后。

答案 1 :(得分:0)

我不了解Visio,我继续假设它不会共享Excel枚举,例如function loginformcheck() { var username = document.getElementById("loginformusr").value; var password = document.getElementById("loginformpw").value; if (username.length == 0 && password.length == 0) { document.getElementById("loginformalert").innerHTML = "Vyplňte přihlašovací údaje!"; } else if (username.length == 0) { document.getElementById("loginformalert").innerHTML = "Vyplňte přihlašovací jméno!"; } else if (password.length == 0) { document.getElementById("loginformalert").innerHTML = "Vyplňte heslo!"; } else if (!username.match(/^\w+$/) || !password.match(/^\w+$/)) { document.getElementById("loginformalert").innerHTML = "Uživatelské jméno nebo heslo je nesprávné!"; } else if (username.match(/^\w+$/) && password.match(/^\w+$/)) { login(); } } function login() { var username = document.getElementById("loginformusr").value; var password = document.getElementById("loginformpw").value; var alert = "Uživatelské jméno nebo heslo je nesprávné!"; if (username.match("jakub") && password.match("poiuz")) { function afterloginanimation(timer) { setTimeout(function(){ if (timer == -1) { window.location.href = "afterlogin.html"; } }, 1500); } document.getElementById("loginformdiv").style.AnimationName = "afterlogindiv"; document.getElementById("loginformdiv").style.AnimationDuration = "1.5s"; document.getElementById("loginform").style.AnimationName = "afterloginform"; document.getElementById("loginform").style.AnimationDuration = "1.5s"; } else { document.getElementById("loginformalert").innerHTML = alert; }

所以你:

  • 使用实际枚举值

    例如xlCalculationManual的值为-4135,那么你想编码

    XlCalculation
  • 或通过引用Excel应用程序对象

    使用Excel枚举名称
    XLApp.Calculation = -4135