excel - 使用 vbscript 运行宏 - 共享驱动器上的工作簿
问题描述
早上好,
我正在尝试使用 vbscript 运行一个简单的测试宏,但出现此错误:“无法运行宏 'Test'。此工作簿中可能没有该宏,或者所有宏都可能被禁用。”
这是 vbscript 中的文本:
Dim objExcel, xlBook
Set objExcel = CreateObject("Excel.Application")
Set xlBook = objExcel.Workbooks.Open("S:\Water\ProcedureSheet.xlsm")
objExcel.visible = True
objExcel.Run "Test"
xlbook.Save
xlbook.Close
objExcel.Quit
执行此操作时,工作簿可以正常打开,因此上面指定的路径是正确的。在此工作簿中,我有一个名为 Test 的模块,其中包含以下宏:
Public Sub Test()
With Sheet3
Cells(1, 1).Value = Time()
End With
End Sub
很简单,对吧?我已经多次检查 vbscript 文本的拼写错误,并且在信任中心设置中启用了“信任对 VBA 项目对象模型的访问”。我什至自动启用了所有宏。我不确定这里出了什么问题。这个论坛上的其他人提到需要以管理员身份运行 vbscript 才能使其工作?由于我使用的是工作计算机,因此我没有此系统的管理员权限,因此无法尝试。
有没有人有任何想法?谢谢!
解决方案
它对我有用,在对您的公共子测试进行一些更改后,您编写的 With 部分看起来像伪代码而不是“正确代码”。
此外,Time() 不是一个有效的函数,它会返回一个空值,您必须使用“Now”函数来获取当前时间和/或日期
'VBScript
Dim objExcel, xlBook
Set objExcel = CreateObject("Excel.Application")
Set xlBook = objExcel.Workbooks.Open("\\DrivePath\Test.xlsm")
objExcel.visible = True
objExcel.Run "Test"
xlbook.Save
xlbook.Close
objExcel.Quit
'Excel Sub
Public Sub Test()
With Sheets("Sheet3")
.Cells(1, 1).Value = Now
End With
End Sub
推荐阅读
- javascript - 如何在 React Native 6.x 版中使用多个导航器
- python - 如何设置一个for循环以在字典中附加任何带有标点符号的单词作为具有空值的键
- android - 如何在不指定键值的情况下获取 JSON 对象的最后一个元素?
- docker - 清单列表条目中没有匹配的 linux/amd64 清单
- python - 在半径内绘制具有离散随机点的随机点
- elasticsearch - 如何在 ES 中返回命中词?
- node.js - Gremlin - 如何在节点结果旁边返回边的属性?
- c++ - 如何使用 C++17 的结构化绑定检测 std::map 的最后一次迭代?
- java - GraalVM 上的 JavaFX 无法使用 FastJson 和 MediaPlayer
- python - 无法使用 keyinterrupt 或以编程方式关闭 python 套接字服务器