Excel VBA将一列的字符串与第二列的字符串进行比较

Posted

技术标签:

【中文标题】Excel VBA将一列的字符串与第二列的字符串进行比较【英文标题】:Excel VBA to compare string of one column to string of second column 【发布时间】:2018-05-01 15:34:00 【问题描述】:

我正在尝试创建一个宏,它将一列的前 4 个字符与同一行中另一列的前 4 个字符进行比较,然后将该行标记为匹配或不匹配。

我做了一些研究,发现了一个有效的 Excel 公式 (=IF(ISNA(MATCH(LEFT(A2,4)&"*",B2:B2,0)),"No Match","Match")但我不确定如何将其转换为 VBA。我正在使用的电子表格的行长每天都在变化,但它们的列数总是相同的。所以我需要能够:比较列C 到 F 列,并将匹配/不匹配结果写入 G 列,无论电子表格上有多少行。

这是我正在使用的电子表格示例,它显示了使用 Excel 公式的结果。

您可以提供的任何帮助/建议将不胜感激。

]1

【问题讨论】:

您可以在列上使用条件格式来突出显示不匹配的单元格 【参考方案1】:

如果需要,您可以使用简化公式并将其转换为值(适用于活动工作表)。

Sub CompareLeft()
  Dim LRow As Long
  LRow = Cells(Rows.Count, "A").End(xlUp).Row
  With Range("c2:c" & LRow)  '<-- Adjust result column
    .FormulaR1C1 = "=IF(LEFT(RC1,4)=LEFT(RC2,4),""Match"",""No Match"")"
    .Value = .Value '<-- Optional - convert formula to values
  End With
End Sub

【讨论】:

以上是关于Excel VBA将一列的字符串与第二列的字符串进行比较的主要内容,如果未能解决你的问题,请参考以下文章

EXCEL如何把第二列的数据按照第一列数据排序,第二列的数据少于第一列

R中根据特定字符将一列拆分为几列的方法

巧用Excel按照某一列进行整体排序

Excel VBA 类型不匹配错误

EXCEL在第二列对应第一列填入的内容返回相对应的数据

如何使用 VBA 在 Excel 宏中删除具有两列的重复项?