Pha*_*anx 31 excel vba case-sensitive excel-vba
我正在开发一个VBA程序,它允许用户键入地址并通过将地址的元素与数据库匹配来查找位置.
不幸的是,我在案例敏感性方面经常遇到问题.
例如,当我使用此代码时:
For i = 11 To lRowB
Range("B" & i).Activate
myResult = IsNumeric(Application.Match(ActiveCell.Value, manilaListRange, 0))
Run Code Online (Sandbox Code Playgroud)
它会将活动单元格的值与我的数据库中的单词列表进行比较.问题是,如果在我的活动单元格中,单词是"miami"或"MIAMI",只有"迈阿密"在数据库中,它将无法工作......
其他例子:
If Range("J6").Value = "tawi" Then
Range("J6").Value = "Tawi-Tawi"
End If
Run Code Online (Sandbox Code Playgroud)
同样的问题,只有用相同案例写的字才会起作用.
我怎么能摆脱这个?这特别烦人,我不能在每种情况下都可以重写我的数据库!
提前致谢 !
Flo*_*ris 55
您可以在模块级别发布声明:
Option Compare Text
Run Code Online (Sandbox Code Playgroud)
这使得所有"文本比较"都不区分大小写.这意味着以下代码将显示消息"this is true":
Option Compare Text
Sub testCase()
If "UPPERcase" = "upperCASE" Then
MsgBox "this is true: option Compare Text has been set!"
End If
End Sub
Run Code Online (Sandbox Code Playgroud)
例如,参见http://www.ozgrid.com/VBA/vba-case-sensitive.htm.我不确定它是否能完全解决所有实例(例如Application.Match函数)的问题,但它会处理所有if a=b语句.至于Application.Match- 您可能希望使用该LCase函数将参数转换为大写或小写.
Vas*_*nth 21
您可以将这两个值转换为小写并进行比较.
这是一个例子:
If LCase(Range("J6").Value) = LCase("Tawi") Then
Range("J6").Value = "Tawi-Tawi"
End If
Run Code Online (Sandbox Code Playgroud)