Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

find wildcard Rückgabewert | Herbers Excel-Forum


Betrifft: find wildcard Rückgabewert von: Michael G.
Geschrieben am: 02.02.2012 14:19:12

Hallo, liebe Exelianer,

With objDoc.ActiveDocument.Content.Find
.ClearFormatting
.Text = "#?*#"
'.Replacement.ClearFormatting
'.Replacement.Text = "wüsste ich gerne"
.Forward = True
.MatchWildcards = True
.Execute
If .Found = True Then MsgBox "Gefunden!"
'.Replace:=2 'wdreplaceAll später
End With

findet den ersten Text in einem Word-Dokument, der mit "#?" anfängt und mit "#" aufhört.
Wie kann ich den kompletten Satz, der zwischen den Anfangs- und dem Endzeichen steht, erhalten ?
(Entsprechende Nr. des ersten gefundenen Buchstabens aus der Buchstabenanzahl? Rückgabewert, des kompletten Satzes ? Text der durch den Wildcard-* ausgeblendet/ übergangen wird steht wo ? Gibt's neben .Found=true/false vielleicht auch ein .found_what ?).

Grüße Michael

  

Betrifft: AW: find wildcard Rückgabewert von: bst
Geschrieben am: 02.02.2012 15:41:05

Hi,

lies die Hinweise in der VBA-Hilfe zu .Find.

HTH, Bernd
--
Option Explicit

Sub x()
   Dim myRange As Range
   
   Set myRange = Application.ActiveDocument.Content
   With myRange.Find
      .ClearFormatting
      .Text = "#?*#"
      .Forward = True
      .MatchWildcards = True
      .Execute
      If .Found = True Then
         MsgBox myRange.Text
         myRange.Bold = True
      End If
   End With
End Sub



  

Betrifft: AW: find wildcard Rückgabewert von: Michael G.
Geschrieben am: 02.02.2012 18:56:52

Moin, Bernd,

danke für Deine Antwort.

Aus meiner Anfrage geht leider nicht deutlich hervor, dass dieses Suchen aus Excel heraus erfolgen soll.

Excel öffnet ein Word.Doc und beginnt mit der Suche in dem Word-Dokument (später dann mit dem Ersetzen).

Dein Vorschlag funktioniert innerhalb eines Word-Makros einwandfrei. Wenn man ihn nach Excel transplantiert , wird bereits beim Kompilieren "Argument ist nicht optional" für with myRange.find gemeldet.

Ich habe jetzt einmal in meinem Code If . Found = True Then MsgBox .Parent ausprobiert ... und was soll ich sagen, was dann angezeigt wird ... :) .

Grüße Michael


  

Betrifft: AW: find wildcard Rückgabewert von: bst
Geschrieben am: 02.02.2012 19:41:11

Abend Michael,



versuche mal:



Dim myRange As Word.Range ' bei Early Binding, d.h.wenn Du einen Verweis auf Word hast

Dim myRange As Object ' sonst



ungetestet.



HTH, Bernd