excel - 为什么从 vbscript 调用宏时出现类型不匹配错误

标签 excel vbscript vba

当我从 vbscript 调用下面的宏时,为什么会出现类型不匹配错误

parameter.xlsm 中的宏

Sub Proc(sParam1 As String, iParam2 As Integer)
MsgBox sParam1 & " is " & iParam2 & " Years Old"
End Sub

VB脚本代码
Dim objExcel,objWorkbook

Set objExcel = CreateObject("Excel.Application")
Set objWorkbook = objExcel.Workbooks.Open("C:\ExcelFiles\parameter.xlsm")
sParam1 = Inputbox("Enter the first parameter")
iParam2 = Inputbox("Enter the second parameter")
iParam3= CInt(iParam2)

objExcel.Application.Visible = True

objExcel.Application.Run "parameter.xlsm!Proc",sParam1,iParam3
objExcel.ActiveWorkbook.Close

objExcel.Application.Quit
WScript.Echo "Finished."
WScript.Quit

最佳答案

在您的过程中,您正在连接字符串,但第二个参数是整数类型。您需要先使用 CStr() 函数转换为字符串

Sub Proc(sParam1 As String, iParam2 As Integer)
MsgBox sParam1 & " is " & CStr(iParam2) & " Years Old"
End Sub

关于excel - 为什么从 vbscript 调用宏时出现类型不匹配错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23487575/

相关文章:

string - VBScript的+和&运算符有什么区别?

excel - 获取系统的日期分隔符

python - 在 Excel 中导入 CSV NBA 统计数据

excel - 多选列表框中的最后一项仅部分可见

sql-server - SQL Server 2019 : 'Microsoft.ACE.OLEDB.16.0' provider is not registered on the local machine. (System.Data)

用于阶乘错误输出的 Java 程序

excel - 执行脚本时隐藏powershell窗口

vbscript - 我如何通过 vbscript 将 CDO 与 Exchange 一起使用

excel - 将列单元格 "Number saved as Text"转换为数字格式的宏

vba - 如何使用 vba 打开 Word 应用程序