2016-11-17 1 views
0

Мне нужно найти строку в ячейке, и если эта строка будет найдена, ячейка рядом с ней должна поместить эту строку в следующую ячейку. С точки зрения непрофессионала:VBA/Excel Найти строку в ячейке, чтобы определить значение следующей ячейки

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; 

И это должно пройти из листа, т.е. C4 & D4, C5 & D5 и т.д.

Заранее спасибо

+0

Вы ищете «Медина» в строке с другими буквами? – Brian

+0

Вам нужно это, чтобы пройти через определенное количество ячеек или пока оно не попадет в пустые ячейки? Кроме того, вам это нужно полностью автоматизировать в VBA? В противном случае вы могли бы просто сделать '= IF (C3 =« Medina »,« ME », IF (C3 =« Brunswick »,« BR »,« OTH »))' – Fritz

ответ

1

Похоже, что вы ищете для функции InStr (см. эту ссылку: https://msdn.microsoft.com/en-us/library/8460tsh1(v=vs.90).aspx). В основном мы хотим проверить, нет ли для этого ненулевого ответа, который указывает, что строка может быть найдена.

Итак, вы можете сделать что-то вроде ниже. Примечание. Я просто поставил 40 в качестве последней строки произвольно, но вы можете изменить это по мере необходимости.

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

Я не думаю, что для этого вам нужен VBA, Excel Формулы достаточны. Если вы хотите, чтобы ваши критерии выбора, чтобы быть легко расширяемой, используйте:

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

Эта формула в В1, а A1 содержит Медину, Брауншвейг и т.д. AA1: AA2 содержат Медину ... Brunswick и AAB1: AAB2 ME ... BR. Его можно перенести на другой лист, и вы можете расширить его, выбрав последнюю ячейку и вставив целые строки. Позже вы также можете использовать именованные диапазоны.

Смежные вопросы