2017-05-04 2 views
-1

Ich versuche, ein Makro in VBA zu erstellen, die eine Spalte in "PasteSheet" für jede Zelle durchsucht, die das Wort "Konvertierung" enthält. Sobald ich diese Zelle habe, kann ich andere Informationen in anderen Spalten sammeln, die dieser Zeile entsprechen. Das Problem, das mir begegnet, ist das Erstellen einer Art von Schleife, die durch die gesamte Datenbank läuft, um alle Instanzen des Wortes "Umwandlung" zurückzugeben. Hier ist mein Code so weit:Suchen Sie mehrere Instanzen von Wert in Kalkulationstabelle

Sub Conversion() 

Dim Comment As Range 
Dim i As String 

Worksheets("PasteSheet").Activate 

Range("Comment").Find("conversion").Select 


Worksheets("sheet1").Range("a1") = Selection.Offset(0, -8) 

End Sub 

Hilfe bitte!

+0

siehe [diese Antwort] (http://stackoverflow.com/questions/19504858/find-all-matches-in-workbook-using-excel-vba#19509066) lernen, wie man Führen Sie mehrere Suchvorgänge durch. Der innere If-Block ist genau das, was Sie brauchen. Tatsächlich ist [diese Chip Pearson FindAll Seite] (http://www.cpearson.com/excel/findall.aspx) hilfreicher. –

Antwort

0

Hier ist eine Möglichkeit, wie Sie es tun können. Dadurch werden die Adressen des gefundenen Wortes in einem Array gespeichert, und Sie können dieses Array am Ende beliebig verwenden. Ich habe Spalte D als Beispielspalte verwendet. Ändern Sie etwas wie nötig

Sub getCells() 
Dim rng As Range, cel As Range 
Dim celAddress() As Variant 
Dim i As Long 
i = 0 

Set rng = Range("D1:D" & Cells(Rows.Count, 4).End(xlUp).Row) 
ReDim cellAddress(rng.Cells.Count) 

For Each cel In rng 
    If cel.Value = "conversion" Then 
     cellAddress(i) = cel.Address 
     i = i + 1 
    End If 
Next cel 

ReDim Preserve cellAddress(i - 1) 

For i = LBound(cellAddress) To UBound(cellAddress) 
    ' Do whatever with each cell address found 
    Debug.Print cellAddress(i) 
Next i 

End Sub 
+0

Danke für die Hilfe! Konnte nicht herausfinden, wie man deine Arbeit machen kann, aber es brachte mich dazu, richtig zu denken, um es herauszufinden! Vielen Dank! – Josh

+0

@Josh - Was hat nicht funktioniert? – BruceWayne