我正在尝试通过 .VBS 文件(文件名:Check_final.vbs)运行 VBA 宏。这是代码
Option Explicit
run_macro
Sub run_macro()
Dim xl1
Dim sCurPath
Dim xlBook
Dim FolderFromPath
Set xl1 = CreateObject("Excel.application")
sCurPath =Wscript.ScriptFullName
Set xlBook = xl1.Workbooks.Open(sCurPath, 0, True)
xl1.DisplayAlerts = False
FolderFromPath = Left(sCurPath, InStrRev(sCurPath, "\"))
xl1.Application.run FolderFromPath & "Changed_chk.xlsm!Check"
Set xlBook = Nothing
End Sub
当我运行此 .vbs 文件时,我收到此弹出窗口“Changed_chk.xlsm 已锁定以进行编辑”,其中包含只读和通知选项。如果我使用“只读”或“通知”选项确认,则会以 Check_final(该 .vbs 文件的文件名)的名称打开 Excel 工作表,并且显示上述代码写入该 Excel 文件中。然后我收到一个 Windows 脚本主机错误(代码:800A03AC),指出宏可能不可用或所有宏都被禁用。(尽管我已经启用了此处提到的宏。[http://www.addictivetips.com/windows-tips/enable-all-macros-in-excel-2010/)] http://www.addictivetips.com/windows-tips/enable-all-macros-in-excel-2010/%29%5d。
非常感谢对此的任何帮助。提前致谢。
您打开 vbs 文件而不是 excel 文件...还要确保您的函数/子是公共的。在下面的示例中,我创建了一个Public Sub Check
在模块“YourModuleName”中,我从 vbs 文件中调用该模块。
Option Explicit
run_macro
Sub run_macro()
Dim xl1
Dim xlBook
Dim FolderFromPath
Set xl1 = CreateObject("Excel.application")
FolderFromPath = Replace(WScript.ScriptFullName, WScript.ScriptName, "")
set xlBook = xl1.Workbooks.Open(FolderFromPath & "Changed_chk.xlsm")
xl1.Application.run "'" & xlBook.Name & "'!YourModuleName.Check"
xl1.Application.Quit
End Sub
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)