Wie kann ich ein VBA-makro ausführen, ein Suchen/Ersetzen in Formeln auf einen gesamte Arbeitsmappe?

Verteile ich eine Excel-Arbeitsmappe, die eine Anzahl von Benutzern, und Sie sind soll eine makro-Datei pre-installiert in Ihrem XLSTART-Ordner.

Wenn Sie nicht über das makro korrekt installiert, und senden Sie die Arbeitsmappe zurück zu mir, alle Formeln je nach den vollständigen Pfad des Makros, z.B.:

'C:\Documents and Settings\richard.tallent\Application Data\
Microsoft\Excel\XLSTART\pcs.xls'!MyMacroFunction()

Erstellen Sie ein quick makro kann ich verwenden, um entfernen Sie die unzulässigen Weg von jede Formel in der Arbeitsmappe.

Habe ich erfolgreich abgerufen speziellen Ordner mit GetSpecialFolder (eine externe Funktion, die funktioniert ganz gut), aber die Ersetzen sich selbst aufrufen, die unten gezeigt ist, löst eine "Application-defined or object-defined error".

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

Automatisierung suchen und ersetzen ist nicht gerade meine Stärke, was mache ich falsch?

Habe ich bereits auskommentiert einige der Parameter, die nicht wichtig erscheinen.

InformationsquelleAutor richardtallent | 2009-02-10

Schreibe einen Kommentar