【发布时间】:2025-12-08 15:05:02
【问题描述】:
我有以下 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)
尽管类型正确(字符串)
如果我将其更改为:
objExcel.Application.Run("'C:\Users\uidu8611\Desktop\CAM0500040F10_SW_Quality_Assurance_Report_Template(new_version).xlsm'!validate_fncname(5)")
它没有给我一个错误,虽然 5 是整数!
请问我的错在哪里?
【问题讨论】:
-
你的第二个版本真的返回一个值吗?它看起来根本不起作用,因为这不是您使用
run传递参数的方式。