如何检查字符串是否是有效的列名?

时间:2017-10-10 06:38:50

标签: excel vba

我有一个列名称(A,B,C,AB,AC ,,,,)存储在字符串变量中。我的要求是获取列号。在此之前,我只想检查给定的列名是否有效。例如,AD,AC,DF,ER,FC,KLWorld,kavisuja无效的情况下有效。 如果我有有效的列名,我可以通过以下代码获得:

Range(ColumnChar & 1).Column

我怎样才能实现这个目标.. 任何人都可以帮我这样做.. 提前谢谢..

2 个答案:

答案 0 :(得分:2)

我就是这样做的,非常类似于评论中@YowE3K的想法:

Option Explicit

Public Sub TestMe()

    Debug.Print isValid("ZZZ")    'False
    Debug.Print isValid("ZZ")     'True
    Debug.Print isValid("ABCD")   'False

End Sub

Public Function isValid(strInput As String) As Boolean

    On Error GoTo isValid_Error

    Dim rngSet  As Range
    Set rngSet = Range(strInput & "1")
    isValid = True

    On Error GoTo 0
    Exit Function

isValid_Error:
End Function

该函数的默认值为False,因此如果未将其设置为True,则默认情况下会提供False

答案 1 :(得分:0)

Private Sub Test()
    Dim ColumnChar As String
    ColumnChar = "AD"

    If IsColumnName(ColumnChar) Then
        Debug.Print Columns(ColumnChar).Column
    End If
End Sub

' Returns True if valid column name, otherwise False
Public Function IsColumnName(strInput As String) As Boolean
    If strInput Like WorksheetFunction.Rept("[a-zA-Z]", Len(strInput)) Then
        If Evaluate("IsRef(" & strInput & "1)") Then IsColumnName = True
    End If
End Function