searchMicrosoft Excel 2013中的两列,并设置具有特定值的第三列的值

我想在worksheetA John_Smith中search一个特定的文本,例如John_Smithfirstname_lastnameWorksheetA有一个列名和另一个列名。 所以在知道哪一行有我search的名字和姓氏之后,我想用特定的值设置同一行的单元格的值。

例如,如果这是我的工作表:

 Firstname Lastname Found Matt Damon No Smith Andrew No John Smith No Tom Mark No 

而我的search词是John_Smith结果将是

 Firstname Lastname Found Matt Damon No Smith Andrew No John Smith Yes Tom Mark No 

有什么build议,请问如何在VBA excel中做到这一点?

这是一个例子,将string分成两个单独的string。 然后遍历范围。

设置 在这里输入图像说明

代码

 Sub Button1_Click() Dim e As String, a As String, b As String Dim Rws As Long, rng As Range, c As Range Rws = Cells(Rows.Count, "A").End(xlUp).Row Set rng = Range(Cells(2, 1), Cells(Rws, 1)) e = Range("E1") a = Left(e, InStr(e, "_") - 1) b = Right(e, InStr(e, "_")) For Each c In rng.Cells If c = a And c.Offset(0, 1) = b Then c.Offset(0, 2) = "Yes" Next c End Sub 

结果

在这里输入图像说明

有很多方法可以做到这一点。 因为你似乎真的想要第三列,其实是说“是”/“否”,这是相当简单的。 假设您的search字词在E2 [以FIRSTNAME_LASTNAME的forms],只需将其放置在单元格C2中,并向下拖动:

 =IF(A2&"_"&B2=$E$2,"Yes","No") 

然后你可以添加一个新的列来检查列C =“是”中的那一行,如果是的话,在那里添加值。 或者,用您的特殊值replace“是”。