【发布时间】:2021-09-27 18:14:51
【问题描述】:
我正在尝试跨多个文件运行宏。我以前使用过这个脚本并且它有效,但也许我无意中改变了一些东西?我遇到的问题是我收到一条错误消息“无法找到 PERSONAL.XLSB,是否有可能它已被移动...”但是,我使用的是 .xlsb 文件的完整路径并且我正在运行来自该文件的宏。 这是我的脚本:
'Sub SHELLforMacros()
Dim wbMatrix As Workbook
Dim strFileName As String
Dim strPath As String
Dim strExt As String
Dim objWorkbook As Workbook
Dim ws As Worksheet
'This is the folder of files it needs to run through:
strPath = "C:\Users\myname\Desktop\All_mricgcm3_files\45\Fall45\test\"
strExt = "csv"
strFileName = Dir(strPath & "*." & strExt)
While strFileName <> ""
Set wbMatrix = Workbooks.Open(strPath & strFileName)
'Set objWorkbook = ActiveWorkbook
Application.Run "C:\Users\myname\AppData\Roaming\Microsoft\Excel\XLSTART\PERSONAL.XLSB'!Graph_NEW"
wbMatrix.ActiveWorkbook.Save
wbMatrix.Close SaveChanges:=True
strFileName = Dir
Wend
End Sub
我还尝试将 PERSONAL.XLSB 文件放入与其需要运行的文件相同的文件夹中(并更改路径以反映这一点)。我尝试从文件夹中的一个文件而不是从 PERSONAL.XLSB 运行或启动它,而不使用完整路径。我不明白为什么找不到。谢谢。
【问题讨论】:
-
C:\...之前没有前导单引号。应该是Application.Run "'C:\Users\myname\AppData\Roaming\Microsoft\Excel\XLSTART\PERSONAL.XLSB'!Graph_NEW"。 -
如果您从 Personal.xlsb 运行该代码,那么您只需要调用
Graph_NEW- 您不需要使用Application.Run