我有一个列名称(A,B,C,AB,AC ,,,,)存储在字符串变量中。我的要求是获取列号。在此之前,我只想检查给定的列名是否有效。例如,AD,AC,DF,ER,FC,KL
在World,kavisuja
无效的情况下有效。
如果我有有效的列名,我可以通过以下代码获得:
Range(ColumnChar & 1).Column
我怎样才能实现这个目标.. 任何人都可以帮我这样做.. 提前谢谢..
答案 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