如何从 If 语句转换为 Select Case 语句

问题描述 投票:0回答:1

下面的代码就可以了。

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

微软链接:

https://learn.microsoft.com/tr-tr/office/vba/language/reference/user-interface-help/select-case-statement?f1url=%3FappId%3DDev11IDEF1%26l%3Dtr-TR%26k %3Dk(vblr6.chm1008810)%3Bk(TargetFrameworkMoniker-Office.Version%3Dv15)%26rd%3Dtrue

vba if-statement conditional-statements
1个回答
0
投票
如果您只想检查一个条件,那么

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
© www.soinside.com 2019 - 2024. All rights reserved.