VBA / Excel在单元格中查找string以确定下一个单元格的值

我需要在单元格中find一个string,如果find该string,它旁边的单元格必须将该string放在下一个单元格中。 通俗地说:

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等。

提前致谢

听起来你正在寻找InStr函数(请参阅此链接: https : InStr ( v= InStr )。 基本上我们要检查是否有一个非零的答案,这表明可以findstring。

所以你可以做下面的事情。 注意我只是把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 

我不认为你需要VBA,Excel公式就足够了。 如果你希望你的select标准很容易扩展,使用这个:

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

这个公式在B1,而A1包含麦地那,不伦瑞克,等AA1:AA2包含麦地那…不伦瑞克和AAB1:AAB2 ME … BR。 它可以被移动到不同的工作表中,并且可以通过select最后一个单元格并插入整行来扩展它。 稍后您可能也想使用命名范围。