2016-11-17 5 views
0

Ich muss eine Zeichenfolge in einer Zelle finden, und wenn diese Zeichenfolge gefunden wird, muss die nächste Zelle diese Zeichenfolge in die nächste Zelle setzen. In juristischer Hinsicht:VBA/Excel Suchen Sie eine Zeichenfolge in einer Zelle, um den Wert der nächsten Zelle zu bestimmen

IF "Medina" is found in a C3 
    put "ME" in cell D3; 
ELSEIF "Brunswick" is found in C3 
    put "BR" in D3; 
ELSE 
    put "OTH"in D3; 

Und dieser hat aus dem Blatt zu gehen, dh C4 & D4, C5 & D5 usw.

Vielen Dank im Voraus

+0

Suchen Sie nach 'Medina' mit einer Reihe anderer Buchstaben? – Brian

+0

Benötigen Sie dies, um eine bestimmte Anzahl von Zellen zu durchlaufen oder bis sie auf leere Zellen treffen? Benötigen Sie es in VBA vollständig automatisiert? Ansonsten könntest du einfach '= IF (C3 =" Medina "," ME ", IF (C3 =" Braunschweig "," BR "," OTH "))' 'machen – Fritz

Antwort

1

Klingt wie Sie suchen für die InStr Funktion (siehe diesen Link: https://msdn.microsoft.com/en-us/library/8460tsh1(v=vs.90).aspx). Im Grunde wollen wir prüfen, ob es eine Nicht-Null-Antwort gibt, die anzeigt, dass die Zeichenfolge gefunden werden kann.

So könnten Sie etwas wie unten tun. Hinweis: Ich gebe nur 40 als letzte Zeile willkürlich ein, aber Sie können dies nach Bedarf ändern.

Dim indStartRow As Integer 
Dim indEndRow As Integer 
Dim i As Integer 

indStartRow = 3 
indEndRow = 40 

For i = indStartRow To indEndRow 
    If InStr(Sheets("Sheetname").Range("C" & i).Value, "Medina") > 0 Then 
     Sheets("Sheetname").Range("D" & i).value = "ME" 
    ElseIf InStr(Sheets("Sheetname").Range("C" & i).Value, "Brunswick") > 0 Then 
     Sheets("Sheetname").Range("D" & i).value = "BR" 
    Else 
     Sheets("Sheetname").Range("D" & i).value = "OTH" 
    End If 
Next i 
0

Ich glaube nicht, dass Sie VBA dafür brauchen, Excel Formeln sind ausreichend. Wenn Sie Ihre Auswahlkriterien wollen einfach erweiterbar sein, diese verwenden:

=IFERROR(INDEX($AB$1:$AB$2,MATCH($A1,$AA$1:$AA$2,0)),"Other") 

Diese Formel in B1, während A1 enthält Medina, Braunschweig, usw. AA1: AA2 enthalten Medina ... Braunschweig und AAb1: AAb2 ME ... BR. Es kann auf ein anderes Blatt verschoben werden, und Sie können es erweitern, indem Sie die letzte Zelle auswählen und ganze Zeilen einfügen. Später möchten Sie vielleicht auch benannte Bereiche verwenden.

Verwandte Themen