excelvba中的字符串比较
两列中有大量数据。我必须将两个字符串是否匹配作为匹配/不匹配打印到第三列中excelvba中的字符串比较,vba,excel,Vba,Excel,两列中有大量数据。我必须将两个字符串是否匹配作为匹配/不匹配打印到第三列中 For example- YES & YeS match yes & YES match ye2 & yes No match & so on 我一直在手动执行此操作,检查每列中的值,然后将其写为匹配/不匹配。希望您能提供一些帮助,使流程自动化。您不需要VBA来完成此操作,但如果需要,您只需在模块顶部编写一个UDF,指定您正在使用
For example- YES & YeS match
yes & YES match
ye2 & yes No match & so on
我一直在手动执行此操作,检查每列中的值,然后将其写为匹配/不匹配。希望您能提供一些帮助,使流程自动化。您不需要VBA来完成此操作,但如果需要,您只需在模块顶部编写一个UDF,指定您正在使用的选项 添加后,假设您在单元格A1和B1中有数据,然后只需在单元格C1中添加公式=compareTextA1,B1,然后向下滚动其他值
请注意,这是最有效的方法,因为选项“比较文本”将对字符串执行二进制比较,而不必在比较之前转换为任何高位字符串,如果数据量真的如您所说的那么大,这将影响性能。答案是否会给出答案?总之,如果您只需将=EXACTA1,B1放入C1并复制到,您将得到它们是否匹配的布尔值,而无需使用VBA。要获得匹配/不匹配,只需将该布尔值放入IF语句。@eirikdaude我已经尝试过这个精确的语句,对于YES&YES这样的情况,它给我的值是false,尽管这两个字符串相等。A1=B1有效吗?当我测试它时,它似乎是这样的,而精确给我的结果和你的一样。如果有效,我将把我的评论写下来作为答案并删除评论。如果你想匹配,不管大小写,用大写字母转换两个单元格。So=UPPERA1=UPPERB1将返回true或false。简单的相等性测试不会作为公式区分大小写,因此这里不需要大小写转换。
Option Compare Text
Public Function compareText(ByVal str1 As String, ByVal str2 As String) As String
If str1 = str2 Then
compareText = "Match"
Else
compareText = "Do not match"
End If
End Function