VB Syntax Makro if then else
if "textxy" *18* then ........... end if
Guten Morgen zusammen,
ich baue gerade ein Makro unter W2003 welches unter anderem einen Wert aus dem Feld "Text59" auslesen soll um dann das aktive Dokument weiter zu bearbeiten. Es soll lediglich geprüft werden ob z.B. die Zahl/Variable 18 enthalten ist. Ich finde irgendwie keine Beschreibung wie ich festlegen kann das der Wert nicht gleich 18 ist sondern nur Anteilig die Zahl 18 enthält. Die Zeichen * und % sind mir als erstes im Gedanken gekommen, sind aber falsch.
Wer hilft mir mal schnell auf die Sprünge?
Hier mal der bisherige Syntax dazu:
H18 und Datei wurden vorab per Dim definiert.
So in etwa habe ich mir das gedacht, funktioniert natürlich nur wenn der Wert genau 18 ist!
Wenn der Wert nun eben nicht genau 18 entspricht bekomme ich dann natürlich einen Laufzeitfehler 13, weil die Werte nicht der Vorgabe entsprechen.
If ActiveDocument.Bookmarks("Text59").Range.Text = 18 Then ActiveDocument.SaveAs H18 & Datei
MsgBox "Das Dokument wurde verarbeitet"
da ich nun eine ziemlich dilettantische Übergangslösung einsetze bin ich für alle weiteren Lösungen offen. Die Select Case Anweisung scheint ja hierfür auch irgendwie möglich zu sein. Der betreffende Auszug aus dem "Meisterwerk" sieht derzeit wie folgt aus:
If (ActiveDocument.Bookmarks("Text59").Range.Text = "18") Or (ActiveDocument.Bookmarks("Text59").Range.Text = "18a") Or (ActiveDocument.Bookmarks("Text59").Range.Text = "18b") Or (ActiveDocument.Bookmarks("Text59").Range.Text = "18c") Or (ActiveDocument.Bookmarks("Text59").Range.Text = "18d") Or (ActiveDocument.Bookmarks("Text59").Range.Text = "Haus18") Or (ActiveDocument.Bookmarks("Text59").Range.Text = "Haus 18") Or (ActiveDocument.Bookmarks("Text59").Range.Text = "H18") Or (ActiveDocument.Bookmarks("Text59").Range.Text = "18A") Or (ActiveDocument.Bookmarks("Text59").Range.Text = "18B") Or (ActiveDocument.Bookmarks("Text59").Range.Text = "18C") Or (ActiveDocument.Bookmarks("Text59").Range.Text = "18D") Then
ActiveDocument.SaveAs H18 & Datei
MsgBox "Das Dokument wurde für die Kostenstelle 18 verarbeitet"
End If
Grüße Jörg
ich baue gerade ein Makro unter W2003 welches unter anderem einen Wert aus dem Feld "Text59" auslesen soll um dann das aktive Dokument weiter zu bearbeiten. Es soll lediglich geprüft werden ob z.B. die Zahl/Variable 18 enthalten ist. Ich finde irgendwie keine Beschreibung wie ich festlegen kann das der Wert nicht gleich 18 ist sondern nur Anteilig die Zahl 18 enthält. Die Zeichen * und % sind mir als erstes im Gedanken gekommen, sind aber falsch.
Wer hilft mir mal schnell auf die Sprünge?
Hier mal der bisherige Syntax dazu:
H18 und Datei wurden vorab per Dim definiert.
So in etwa habe ich mir das gedacht, funktioniert natürlich nur wenn der Wert genau 18 ist!
Wenn der Wert nun eben nicht genau 18 entspricht bekomme ich dann natürlich einen Laufzeitfehler 13, weil die Werte nicht der Vorgabe entsprechen.
If ActiveDocument.Bookmarks("Text59").Range.Text = 18 Then ActiveDocument.SaveAs H18 & Datei
MsgBox "Das Dokument wurde verarbeitet"
da ich nun eine ziemlich dilettantische Übergangslösung einsetze bin ich für alle weiteren Lösungen offen. Die Select Case Anweisung scheint ja hierfür auch irgendwie möglich zu sein. Der betreffende Auszug aus dem "Meisterwerk" sieht derzeit wie folgt aus:
If (ActiveDocument.Bookmarks("Text59").Range.Text = "18") Or (ActiveDocument.Bookmarks("Text59").Range.Text = "18a") Or (ActiveDocument.Bookmarks("Text59").Range.Text = "18b") Or (ActiveDocument.Bookmarks("Text59").Range.Text = "18c") Or (ActiveDocument.Bookmarks("Text59").Range.Text = "18d") Or (ActiveDocument.Bookmarks("Text59").Range.Text = "Haus18") Or (ActiveDocument.Bookmarks("Text59").Range.Text = "Haus 18") Or (ActiveDocument.Bookmarks("Text59").Range.Text = "H18") Or (ActiveDocument.Bookmarks("Text59").Range.Text = "18A") Or (ActiveDocument.Bookmarks("Text59").Range.Text = "18B") Or (ActiveDocument.Bookmarks("Text59").Range.Text = "18C") Or (ActiveDocument.Bookmarks("Text59").Range.Text = "18D") Then
ActiveDocument.SaveAs H18 & Datei
MsgBox "Das Dokument wurde für die Kostenstelle 18 verarbeitet"
End If
Grüße Jörg
Please also mark the comments that contributed to the solution of the article
Content-Key: 73412
Url: https://administrator.de/contentid/73412
Printed on: April 26, 2024 at 00:04 o'clock
3 Comments
Latest comment
Probier doch mal die INSTR Funktion
z.B.:
Suchtext = ActiveDocument.Bookmarks("Text59").Range.Text
gefunden = instr(Suchtext,"18") 'Wenn der Suchstring vorhanden, gibt die Funktion TRUE zurück
if gefunden
ActiveDocument.SaveAs H18 & Datei
MsgBox "Das Dokument wurde für die Kostenstelle 18 verarbeitet"
End If
z.B.:
Suchtext = ActiveDocument.Bookmarks("Text59").Range.Text
gefunden = instr(Suchtext,"18") 'Wenn der Suchstring vorhanden, gibt die Funktion TRUE zurück
if gefunden
ActiveDocument.SaveAs H18 & Datei
MsgBox "Das Dokument wurde für die Kostenstelle 18 verarbeitet"
End If