VBA StrComp |使用StrComp函数比较VBA中的字符串
Excel VBA StrComp函数
VBA StrComp 是一个内置函数,用于比较两个字符串值是否相同。但是,结果不像工作表中那样默认为TRUE或FALSE,而是不同。
在查看结果之前,让我先向您展示StrComp函数的语法。
- 字串1: 字符串1是我们要比较的第一个字符串或值。
- 字串2: 字符串2是我们要比较的第二个字符串或值 弦1.
- 比较: 我们可以在此处提供三个选项。
- 0 =二进制比较。这将执行区分大小写的计算。例如,“ Hello”不等于“ HELLO”,因为两个单词的大小写都不同。如果忽略此参数,则为默认值。 vbBinaryCompare
- 1 =文字比较。此选项执行不区分大小写的计算。例如,“ Hello”等于“ HELLO”事件,尽管两个词的大小写都不同。 vbTextCompare
- 2 =访问比较。这将执行数据库比较。
字符串比较(StrComp)函数的结果
正如我告诉我们的那样,当我们在工作表中比较两个值时,得出的结果为TRUE或FALSE。但是用VBA字符串比较函数的结果是不一样的。
- 我们得到零(0)时 弦1 等于 字符串2。
- 我们得到一(1) 弦1 值大于 弦2 价值.
- 当我们得到负一(-1) 弦1 值小于 弦2
- 我们在以下情况下得到NULL 弦1 或者 弦2 值为NULL。
使用VBA StrComp函数的示例
您可以在此处下载此VBA StrComp Excel模板– VBA StrComp Excel模板范例#1
让我们从一个简单的例子开始。例如,我们将比较两个值,即“ Excel VBA”和“ Excel VBA”。
代码:
Sub StrComp_Example1()Dim FirstValue作为字符串'将字符串1值存储为Dim SecondValue作为字符串'将字符串2值存储为Dim结果作为字符串'将StrComp公式的结果存储为FirstValue =“ Excel VBA”'将字符串1的值分配为SecondValue = “ Excel VBA”'分配字符串2值Result = StrComp(FirstValue,SecondValue,vbBinaryCompare)'应用StrComp函数MsgBox结果'在消息框中显示结果End Sub
当我运行此代码时,我们将得到零 (0) 结果是因为 弦1 和 弦2 值是相同的。
范例#2
现在,我将更改两个单词的大小写。
字串1 = Excel Vba
字串2 = Excel VBA
代码:
Sub StrComp_Example2()Dim FirstValue作为字符串'存储字符串1值Dim SecondValue作为字符串'存储字符串2值Dim结果作为字符串'存储StrComp公式的结果FirstValue =“ Excel Vba”'分配字符串1值SecondValue = “ Excel VBA”'分配字符串2值Result = StrComp(FirstValue,SecondValue,vbBinaryCompare)'应用StrComp函数MsgBox结果'在消息框中显示结果End Sub
当我运行这段代码时,我们将得到 1 因为自从我们将Compare参数提供为“vbBinaryCompare” 它将检查区分大小写的字符。
现在,我将更改 比较 来自“vbBinaryCompare” 到 ”vbTextCompare”
代码:
Sub StrComp_Example3()Dim FirstValue作为字符串'存储字符串1值Dim SecondValue作为字符串'存储字符串2值Dim结果作为字符串'存储StrComp公式的结果FirstValue =“ Excel Vba”'分配字符串1值SecondValue = “ Excel VBA”'分配字符串2值Result = StrComp(FirstValue,SecondValue,vbTextCompare)'应用StrComp函数MsgBox结果'在消息框中显示结果End Sub
有了这个 比较, 我们将得到零 (0) 因为 vbaTextCompare 忽略区分大小写的单词。
例子#3
IF条件下VBA StrComp的案例研究
假设您具有如下图所示的数据。
我们需要比较 弦1 和 弦2 到达 结果 如果两者相同,则为“精确”,否则结果应为“不精确”。
下面的代码将为我们完成这项工作。
代码:
Sub StrComp_Example4()Dim结果作为字符串Dim I作为整数,i = 2到6结果= StrComp(Cells(i,1).Value,Cells(i,2).Value)如果Result = 0则Cells(i,3 ).Value =“精确”的其他单元格(i,3).Value =“不精确的”如果下一个i结束,则结束
当我在Excel中运行上述VBA代码时,我们将得到以下结果。
如果你看C4细胞 弦1 和 弦2 相同,但字符区分大小写,因此结果为“不精确”。为了克服这个问题,我们需要提供“比较为” vbTextCompare。
下面是修改后的代码,可将C4单元格的结果显示为“精确”。
代码:
Sub StrComp_Example4()Dim结果作为字符串Dim I作为整数,i = 2到6结果= StrComp(Cells(i,1).Value,Cells(i,2).Value,vbTextCompare)如果结果= 0,则Cells(i ,3).Value =“精确”的其他单元格(i,3).Value =“不精确的”如果下一个i结束,则结束
此代码将返回以下结果。