gpt4 book ai didi

vba - 如果使用 vb 脚本调用宏将被禁用

转载 作者:行者123 更新时间:2023-12-02 02:54:42 24 4
gpt4 key购买 nike

我正在尝试使用 vbs 调用我的 Excel 宏。这是我的代码片段。

Set objExcel = CreateObject("Excel.Application")
Set objWorkbook = objExcel.Workbooks.Open("C:\Folder\Test_PO.xls")
objExcel.Application.Visible = True
objExcel.Application.Run "C:\Folder\Test_PO.xls!Data_Analysis"
objExcel.ActiveWorkbook.Close
objExcel.Application.Quit
WScript.Echo "Finished."
WScript.Quit

现在的问题是我能够打开该文件,但宏在此处以某种方式被禁用,并向我显示“宏可能不存在或可能被禁用”。我确信我正在调用正确的宏名称,但是一旦打开文件,我配置宏运行的“加载项”选项卡就会消失。如果我手动打开文件,则不会打开该选项卡,我可以看到该选项卡并从选项卡本身运行宏。有什么建议我可以克服这个问题并让宏运行吗?

最佳答案

试试这个

Dim objExcel, objWorkbook 

Set objExcel = CreateObject("Excel.Application")
Set objWorkbook = objExcel.Workbooks.Open("C:\Folder\Test_PO.xls")
objExcel.Visible = True
objExcel.Run "Data_Analysis"
objWorkbook.Close
objExcel.Quit

Set objWorkbook = Nothing
Set objExcel = Nothing

WScript.Echo "Finished."
WScript.Quit

编辑

如果宏位于模块中,那么上面的内容将会有所帮助。如果宏位于工作表中,例如 Sheet1,则替换该行

objExcel.Run "Data_Analysis"

objExcel.Run "sheet1.Data_Analysis"

跟进

试试这个代码。

Dim objExcel, objWorkbook, ad, FilePath

Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = True

For Each ad In objExcel.AddIns
If ad.Name = "Converteam.xla" Then
FilePath = ad.Path & "\Converteam.xla"
Exit For
End If
Next

objExcel.Workbooks.Open (FilePath)

Set objWorkbook = objExcel.Workbooks.Open("C:\Folder\Test_PO.xls")

objExcel.Run "Data_Analysis_Converteam"
objWorkbook.Close
objExcel.Quit

Set objWorkbook = Nothing
Set objExcel = Nothing

WScript.Echo "Finished."
WScript.Quit

说明:

当您使用CreateObject时,默认情况下不会安装加载项。请参阅此链接。

主题:在 Excel 中使用 CreateObject 命令时不会加载加载项

链接:http://support.microsoft.com/kb/213489/

您必须加载加载项,然后调用相关宏。此外,宏的名称不是 Data_Analysis 而是 Data_Analysis_Converteam

HTH

关于vba - 如果使用 vb 脚本调用宏将被禁用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10530299/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com