下面的代码就可以了。
Sub Macro1()
Dim str As String
str = Sheets("Sheet1").Range("A1").Value
hasArabic (str)
End Sub
Function hasArabic(str As String) As Boolean
hasArabic = False
Dim i As Long
Dim c As Long
For i = 1 To Len(str)
c = AscW(Mid(String:=str, Start:=i, Length:=1))
If c >= &H600 And c <= &H6FF Then hasArabic = True: Exit For
Next i
End Function
我尝试将上面的If语句转换为Select Case语句,但以下代码不起作用。
Function hasArabic(str As String) As Boolean
hasArabic = False
Dim i As Long
Dim c As Long
For i = 1 To Len(str)
Select Case c = AscW(Mid(String:=str, Start:=i, Length:=1))
Case c >= &H600 And c <= &H6FF: hasArabic = True: Exit For
End Select
Next i
End Function
所以请支持我如何从 If Statement 转换为 Select Case Statement。
微软链接:
Select Case
是一个糟糕的选择,但是:
Function hasArabic(str As String) As Boolean
Dim i As Long
For i = 1 To Len(str)
Select Case AscW(Mid(String:=str, Start:=i, Length:=1))
Case &H600 To &H6FF
hasArabic = True
Exit Function
End Select
Next i
End Function