Excel VBA Like 函数不起作用

Posted

技术标签:

【中文标题】Excel VBA Like 函数不起作用【英文标题】:Excel VBA Like Function not working 【发布时间】:2014-11-25 10:08:31 【问题描述】:

我在vba中使用这条指令:

    str1 = Sheet1.Cells(2, 9)
    str2 = Sheet1.Cells(2, 10)

    cell(2,9)="توابع تبریز"
    cell(2,10)="تبریز"

我写了这段代码:

if trim(str1) like "*"+trim(str2) then
msgbox "ok"
end if

但是这个 if 块不起作用并且 Like 函数返回 false 结果。

但是当我写这段代码时:

a="توابع تبریز " like "*"+"تبریز"

但现在返回 True!会发生什么?

【问题讨论】:

【参考方案1】:

+ 运算符不是问题所在。虽然建议使用& 而不是+

我猜语言是乌尔都语。如果是,那么我只记得它是从左到右写的。所以在那种情况下试试这个

If str1 Like "*" & str2 Then 'Remove the trim

您必须删除修剪,因为它正在修剪空格,因此通配符不起作用。请参见下面的示例。

例子

Sub Sample()
    '~~> Trying to imitate Urdu in reverse
    Cells(2, 9) = " aaaa bbbb "
    Cells(2, 10) = " bbbb "

    str1 = Cells(2, 9)
    str2 = Cells(2, 10)

    If str1 Like "*" & str2 Then MsgBox "Hey"
End Sub

【讨论】:

【参考方案2】:

您没有正确连接字符串。您当前使用的 + 是一个数学运算符。将您的+ 替换为&,如下所示:

If Trim(str1) Like "*" & Trim(str2) Then

【讨论】:

+ 运算符不是问题所在。虽然建议使用& 而不是+

以上是关于Excel VBA Like 函数不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Excel vba拆分功能不起作用

Excel VBA UDF 操作字符串不起作用

AppleScriptTask 命令在 Excel 2016 for Mac VBA 中不起作用

Excel中的VBA - 如果语句计数器不起作用

使用 VBA 最大化的 Excel 求解器不起作用

插入代码时,打开事件中的 Excel 2010 vba EnableEvent 不起作用