Я раздаю рабочую книгу 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
Автоматизация поиска и замены не совсем моя сильная сторона, что я делаю не так?
Я уже прокомментировал некоторые параметры, которые не кажутся необходимыми.