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将一列的字符串与第二列的字符串进行比较的主要内容,如果未能解决你的问题,请参考以下文章