Discussion:
Wie bringe ich das zum Laufen
(zu alt für eine Antwort)
Hans List
2011-08-30 13:50:40 UTC
Permalink
Hallo Wolfgang,

kannst Du mir bitte auf die Sprünge helfen?

Wie bringe ich Dein Makro zum Laufen (leider reichen meine Kenntnisse
nicht):

Das hans2 ist eine Funktion, die ich per Makro aufrufen muss?

===


Sub hans2(A, B, C)
Dim fso As New FileSystemObject
Dim Zeilen, i
Dim Datei
Datei = fso.BuildPath("c:\werk", "Hans.txt")
Zeilen = Split(fso.OpenTextFile(Datei).ReadAll, vbCrLf)
For i = 0 To UBound(Zeilen)
If InStr(Zeilen(i), A) > 0 Then Zeilen(i) =
Replace(Zeilen(i), B, C)
Next i
Datei = fso.BuildPath("c:\werk", "Hans2.txt")
fso.OpenTextFile(Datei, ForWriting, True).Write Join(Zeilen,
vbCrLf)
End Sub
Sub GlobalAendern()

Dim A, B, C As String
A = Gewindestange
B = screw
C = bolt

'global_aendern = hans2(Gewindestange, screw, bolt)
global_aendern = hans2(A, B, C)
End Sub

===


Wolfram Jahn
Profil anzeigen
Weitere Optionen 22 Jul., 00:11
Hallo Leute,
Hier ist es, aber in Word ffnen ist berfl ssig:
-Makro------------------
Sub hans2(A, B, C)
Dim fso As New FileSystemObject
Dim Zeilen, i
Dim Datei
Datei = fso.BuildPath("c:\", "Hans.txt")
Zeilen = Split(fso.OpenTextFile(Datei).ReadAll, vbCrLf)
For i = 0 To UBound(Zeilen)
If InStr(Zeilen(i), A) > 0 Then Zeilen(i) = Replace(Zeilen(i), B,
C)
Next i
Datei = fso.BuildPath("c:\", "Hans2.txt")
fso.OpenTextFile(Datei, ForWriting, True).Write Join(Zeilen, vbCrLf)
End Sub
-c:\hans.txt------------------
Gewindeschraube[tab]screw
Gewindestange[tab]screw
Gewindeschrauben[tab]screws
Gewindestangen[tab]screws
-Aufruf in VBA Direktbereich------------------
hans2 "Gewindestange","screw","bolt"
-c:\hans2.txt------------------
Gewindeschraube[tab]screw
Gewindestange[tab]bolt
Gewindeschrauben[tab]screws
Gewindestangen[tab]bolts
-Wolfram-------------------


Vielen Dank!

Hans
Wolfram Jahn
2011-08-30 19:36:22 UTC
Permalink
Post by Hans List
Hallo Wolfgang,
kannst Du mir bitte auf die Sprünge helfen?
Hallo Hans,

unter der Zeile

"-Aufruf in VBA Direktbereich------------------"

stand der Aufruf.

Davor stand der Inhalt der Eingabedatei "c:\hans.txt", danach der Inhalt
der vom Makro erzeugten Ausgabedatei "c:\hans2.txt".


Wolfram
(nicht Wolfgang; ist zwar auch ein schöner Name, aber etwas häufiger)
Hans List
2011-08-31 08:12:07 UTC
Permalink
Hallo Wolfram,

ich bitte gleich 2x um Entschuldigung.

Danke für den Hinweis, ich mache mich sofort an die Arbeit (und
teste).

Gruß

Hans
Hans List
2011-08-31 08:17:31 UTC
Permalink
Wolfram,

Wenn ich das Makro im Direktfenster starte, bekomme ich die
Fehlermeldung:

ByRef-Argumenttypen stimmen nicht überein (meine Übersetzung).

Und das letzte 'Zeilen' in:

If InStr(Zeilen(i), A) > 0 Then Zeilen(i) = Replace(Zeilen(i), B, C)

ist markiert.

Leider verstehe ich nicht, was hier lost ist.

Hans
Hans List
2011-08-31 08:44:40 UTC
Permalink
Haha, gefunden!

Ich hatte offenbar in meinem Makro-Sammelsurium noch eine Funktion mit
dem Namen:

Function Replace(fWhat As String, fStyle As String, rWith As String,
rStyle _
As String, Optional wWord As Boolean, Optional fmat As Boolean)

Die heisst jetzt 'Replace310811' ;)

Gruß

Hans

Lesen Sie weiter auf narkive:
Loading...