hallo Jörg,
ich habe den Code mal ausprobiert. Dazu habe ich den Code in Mappe1
kopiert, und dann in Mappe2 ein kleines Makro angelegt, das "AlterText"
enthält.
Durch ReplaceTextInVBA wird dieses AlterText auch gefunden und ersetzt,
aber: auch das AlterText in ReplaceTextInVBA wird ersetzt, obwohl der
Code nicht in einem Modul des ActiveWorkbook ist! Dh, durch die Zuweisung
VBProject.VBE.CodePanes werden alle VBProjekte durchsucht, nicht nur das
des ActiveWorkbook.
Evtl kommt daher das Nicht-funktionieren.
Probiers stattdessen zB so:
For Each VBComp In ActiveWorkbook.VBProject.VBComponents
With VBComp.codemodule
For k = 1 To .CountOfLines
sLine = .Lines(k, 1)
usw
Gruß
stefan
, das Jörg Eisenträger schrieb in der newsgroup
Post by Jörg EisenträgerPost by Jörg EisenträgerDurch Experimentieren mit diversen zusammengesuchten Codeschnipseln
habe
Zu früh gefreut. Das Suchen und Ersetzen wird nur ausgeführt, wenn
mindestens eins der Module im VBA-Editor geöffnet ist.
Wenn ich den folgenden Code in die personl.xls kopiere und dann auf eine
andere geöffnete Datei anwenden will, passiert nichts. Ich muss erst in
den VBA-Edior gehen, dort ein Modul des Projekts der geöffneten Datei
öffnen und das Makro dann starten. Dann funktioniert es.
Hallo Ihr da draußen,
habt Ihr eine Erklärung? Lösung?
Post by Jörg EisenträgerOption Explicit
Sub ReplaceTextInVBA()
Dim sLine, SearchString, ReplaceString As String
Dim i, k As Long
Dim VBE As Object
SearchString = "AlterText"
ReplaceString = "NeuerText"
For i = 1 To ActiveWorkbook.VBProject.VBE.CodePanes.Count
Set VBE = ActiveWorkbook.VBProject.VBE.CodePanes(i).CodeModule
With VBE
For k = 1 To .CountOfLines
sLine = .Lines(k, 1)
If InStr(sLine, SearchString) > 0 Then
sLine = Replace(sLine, SearchString,
ReplaceString)
Post by Jörg Eisenträger.ReplaceLine k, sLine
End If
Next k
End With
Next i
End Sub
Gruß
Jörg
--
LPs auf CD brennen - so geht's: http://www.joergei.de/
E-Mail-Adresse existiert, wird aber nicht gelesen.
--
Immer auf dem aktuellen Stand mit den Newsgroups von freenet.de:
http://newsgroups.freenet.de