我将 Excel 工作簿分发给许多用户,他们应该在他们的 XLSTART 文件夹中预先安装了一个特定的宏文件。
如果他们没有正确安装宏,并且他们将工作簿发回给我,则任何依赖于它的公式都包含宏的完整路径,例如:
'C:\Documents and Settings\richard.tallent\Application Data\
Microsoft\Excel\XLSTART\pcs.xls'!MyMacroFunction()
我想创建一个快速宏,可用于从工作簿中的每个公式中删除不正确的路径。
我已经使用 GetSpecialFolder(一个运行良好的外部函数)成功检索了特殊文件夹,但是下面显示的 Replace 调用本身会引发“应用程序定义或对象定义错误”。
Public Sub FixBrokenMacroFormulas()
Dim badpath As String
badpath = "'" & GetSpecialFolder(AppDataFolder) & "\Microsoft\Excel\XLSTART\mymacro.xls'!"
Dim Sheet As Worksheet
For Each Sheet In ActiveWorkbook.Sheets
Call Sheet.Activate
Call Sheet.Select(True)
Call Selection.Replace(What:=badpath, Replacement:="", LookIn:=xlFormulas)
''//LookAt:=xlPart, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
Next
End Sub
自动搜索和替换并不是我的强项,我做错了什么?
我已经注释掉了一些看起来并不重要的参数。