我尝试创建一个宏,将一列中的前4个字符与同一行中另一列的前4个字符进行比较,然后将该行标记为匹配或不匹配。
我做了一些研究,发现了一个Excel公式(= IF(ISNA(MATCH(LEFT(A2,4)&" *",B2:B2,0)),"没有匹配",#34;匹配")哪个有效,但我不知道如何将其转换为VBA。我工作的电子表格每天的行长度可能不同但它们总是具有相同数量的列。所以我需要能够:将列C与列F进行比较,并将匹配/无匹配结果写入列G,而不管电子表格中的行数。
以下是我正在使用的电子表格示例,其中显示了使用Excel公式的结果。
您可以提供任何帮助/建议,我们将不胜感激。
] 1
答案 0 :(得分:0)
您可以使用简化公式并根据需要将其转换为值(适用于活动工作表)。
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