我有以下vba功能(在Excel文件的模块中)
Public Function validate_fncname(strFncname As String) As Boolean
.
.
.
validate_fncname = True
End Function
我写了下面的vbscript来调用它:
Set objExcel = CreateObject("Excel.Application")
Set objWorkbook = objExcel.Workbooks.Open("C:\Users\uidu8611\Desktop\CAM0500040F10_SW_Quality_Assurance_Report_Template(new_version).xlsm")
objExcel.Application.Visible = True
Dim str
str ="hello"
Dim validate_fncname
validate_fncname = objExcel.Application.Run("'C:\Users\uidu8611\Desktop\CAM0500040F10_SW_Quality_Assurance_Report_Template(new_version).xlsm'!validate_fncname", str)
Wscript.Echo validate_fncname
然而,当我运行脚本时,它给出了行的类型不匹配错误:
objExcel.Application.Run("'C:\Users\uidu8611\Desktop\CAM0500040F10_SW_Quality_Assurance_Report_Template(new_version).xlsm'!validate_fncname", str)
尽管类型是正确的(String)
此外,如果我将其更改为:
objExcel.Application.Run("'C:\Users\uidu8611\Desktop\CAM0500040F10_SW_Quality_Assurance_Report_Template(new_version).xlsm'!validate_fncname(5)")
它不会给我一个错误,虽然5是整数!
我的错误在哪里?
答案 0 :(得分:1)
您已经拥有validate_fncname
方法,看起来不错(除非将返回值设置为True
,可能应该在if then
语句中完成,以避免将所有内容设置为{{1} })。
调用此函数时,您应该能够执行以下操作:
True
答案 1 :(得分:0)
我玩了一段时间并且出现了同样的错误 在我的情况下,我只是想来回传递一个字符串。
然后我查看了VBScript的昏暗语句,它说“所有VBScript变量都是变体”,所以我将电子表格上的函数更改为Variant,这对我有用。希望这有助于遇到这个问题的其他人。