Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
excelvba中的字符串比较_Vba_Excel - Fatal编程技术网

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