VBA字符串比较|如何比较两个字符串值?

Excel VBA字符串比较

要在VBA中比较两个字符串,我们有一个内置函数,即“StrComp”。我们可以将其读为“字符串比较”,此功能仅适用于VBA,不适用于工作表功能。它比较任何两个字符串,并返回结果为 “零(0)” 如果两个字符串都匹配,并且两个提供的字符串都不匹配,那么我们将得到 “一(1)” 作为结果。

在VBA或excel中,我们面临许多不同的情况,其中一种情况是“比较两个字符串值”。在常规工作表中,我们可以执行多种方法,但是在VBA中,您如何做到这一点?

以下是“ StrComp”函数的语法。

首先,两个论点非常简单,

  • 为了 弦1 我们需要提供我们正在比较的第一个值,
  • 为了 弦2 我们需要提供我们正在比较的第二个值。
  • [比较] 这是StrComp函数的可选参数。当我们要比较区分大小写的比较时,这很有用。例如,在此参数中,“ Excel”不等于“ EXCEL”,因为这两个词都区分大小写。

我们可以在此处提供三个值。

  • 零(0)代表“二进制比较”,即“ Excel”不等于“ EXCEL”。对于区分大小写的比较,我们可以提供0。
  • 一(1)表示“文字比较”,即“ Excel”等于“ EXCEL”。这是不区分大小写的比较。
  • 两(2)个仅用于数据库比较。

“ StrComp”函数的结果并非默认为TRUE或FALSE,而是有所不同。以下是“ StrComp”功能的不同结果。

  • 我们将获得 “0” 结果,如果提供的字符串匹配。
  • 我们将获得 “1” 如果提供的字符串不匹配,并且在数字匹配的情况下,如果字符串1大于字符串2,则将得到1。
  • 我们将获得 “-1” 如果字符串1的数字小于字符串2的数字。

如何在VBA中执行字符串比较?

您可以在此处下载此VBA字符串比较Excel模板– VBA字符串比较Excel模板

范例#1

我们将匹配“班加罗尔反对字符串“班加罗尔”.

首先,将两个VBA变量声明为字符串以存储两个字符串值。

代码:

 Sub String_Comparison_Example1()Dim值1作为字符串Dim值2作为字符串End Sub 

对于这两个变量,存储两个字符串值。

代码:

 Sub String_Comparison_Example1()Dim值1作为字符串Dim值2作为字符串Value1 =“ Bangalore” Value2 =“ BANGALORE”结束子级 

现在再声明一个变量来存储“StrComp“ 功能。

代码:

 Sub String_Comparison_Example1()Dim Value1作为字符串Dim Value2作为字符串Value1 =“ Bangalore” Value2 =“ BANGALORE” Dim FinalResult作为字符串End Sub 

对于此变量,打开“ StrComp”功能。

代码:

Sub String_Comparison_Example1()Dim Value1作为字符串Dim Value2作为字符串Value1 =“ Bangalore” Value2 =“ BANGALORE” Dim FinalResult作为字符串FinalResult = StrComp(End Sub 

对于“ String1”和“ String2”,我们已经通过变量分配了值,因此请分别输入变量名称。

代码:

 Sub String_Comparison_Example1()Dim Value1作为字符串Dim Value2作为字符串Value1 =“ Bangalore” Value2 =“ BANGALORE” Dim FinalResult作为字符串FinalResult = StrComp(Value1,Value2,End Sub 

该功能的最后一部分是“比较” “ vbTextCompare”。

代码:

 Sub String_Comparison_Example1()Dim Value1作为字符串Dim Value2作为字符串Value1 =“ Bangalore” Value2 =“ BANGALORE” Dim FinalResult作为字符串FinalResult = StrComp(Value1,Value2,vbTextCompare)结束子 

现在显示 “最后结果” VBA消息框中的变量。

代码:

 Sub String_Comparison_Example1()Dim值1作为字符串Dim值2作为字符串Value1 =“ Bangalore” Value2 =“ BANGALORE” Dim FinalResult作为字符串FinalResult = StrComp(Value1,Value2,vbTextCompare)MsgBox FinalResult End Sub 

好的,让我们运行代码并查看结果。

输出:

由于字符串“ Bangalore”和“ BANGALORE”都相同,因此结果为0,即匹配。这两个值都区分大小写,因为我们提供的参数为 “ vbTextCompare” 它忽略了区分大小写的匹配和仅匹配的值,因此两个值都相同,结果为0,即TRUE。

代码:

 Sub String_Comparison_Example1()Dim Value1作为字符串Dim Value2作为字符串Value1 =“ Bangalore” Value2 =“ BANGALORE” Dim FinalResult作为字符串FinalResult = StrComp(Value1,Value2,vbTextCompare)MsgBox FinalResult End Sub

范例#2

对于相同的代码,我们将从以下方法更改compare方法: “ vbTextCompare” “ vbBinaryCompare”。

代码:

 Sub String_Comparison_Example2()Dim Value1作为字符串Dim Value2作为字符串Value1 =“ Bangalore” Value2 =“ BANGALORE” Dim FinalResult作为字符串FinalResult = StrComp(Value1,Value2,vbBinaryCompare)MsgBox FinalResult End Sub 

现在运行代码并查看结果。

输出:

即使两个字符串都相同,我们的结果仍为1,即不匹配,因为我们将compare方法应用为 “ vbBinaryCompare” 比较两个值是否区分大小写。

例子#3

现在,我们将看到如何比较数值。对于相同的代码,我们将分配不同的值。

代码:

 Sub String_Comparison_Example3()Dim Value1作为字符串Dim Value2作为字符串Value1 = 500 Value2 = 500 Dim FinalResult作为String FinalResult = StrComp(Value1,Value2,vbBinaryCompare)MsgBox FinalResult End Sub 

两个值都是500,由于两个值都匹配,所以结果为0。

输出:

现在,我将Value1的值从500更改为100。

代码:

 Sub String_Comparison_Example3()Dim Value1作为字符串Dim Value2作为字符串Value1 = 1000 Value2 = 500 Dim FinalResult作为String FinalResult = StrComp(Value1,Value2,vbBinaryCompare)MsgBox FinalResult End Sub 

运行代码并查看结果。

输出:

我们知道Value1和Value2不同,但是结果是-1而不是1,因为对于数字比较,当String 1的值大于String 2时,我们将得到-1。

代码:

 Sub String_Comparison_Example3()Dim Value1作为字符串Dim Value2作为字符串Value1 = 1000 Value2 = 500 Dim FinalResult作为String FinalResult = StrComp(Value1,Value2,vbBinaryCompare)MsgBox FinalResult End Sub 

现在,我将反转这些值。

代码:

 Sub String_Comparison_Example3()Dim Value1作为字符串Dim Value2作为字符串Value1 = 500 Value2 = 1000 Dim FinalResult作为String FinalResult = StrComp(Value1,Value2,vbBinaryCompare)MsgBox FinalResult End Sub 

运行代码并查看结果。

输出:

如果不匹配,这不是特殊的,我们只会得到1。

这里要记住的事情

  • “ StrComp”的[Compare]参数是可选的,但在区分大小写的匹配情况下,我们可以利用此参数,并且选项是 “ vbBinaryCompare”。
  • 在字符串1大于字符串2且结果为-1的情况下,数值结果略有不同。
  • 如果匹配,则结果为0,如果不匹配,则结果为1。