如何在VBA中使用列字母

时间:2016-02-10 07:30:36

标签: excel vba excel-vba

我目前正在努力解决以下问题

我试图实现一个输入框,用户可以在其中输入列的字符。

之后,我不知道如何将其转换为数字以在Worksheet.Cells方法

中使用它

例如:用户输入" B",因此程序将其保存在名为x的变量中并将其转换为数字,以便可以将其用作{{1 }}

是否有任何方法或有人知道如何做到这一点?

3 个答案:

答案 0 :(得分:5)

Cells()是你的朋友。

不要过度思考。

Cells(1, 1) = "jello" ' changes cell A1
Cells(2, "AZ") = "too much jello" ' changes cell AZ2

Cells()的第二个参数可以是数字或alpha列标题。

答案 1 :(得分:1)

B是第二列,因此您可以使用表达式(基于ASCII):

Sub main()
    Dim s As String
    s = "AB"
    example s
End Sub

Sub example(s As String)

    Dim colNum As Integer
    Dim i As Integer

    i = 1: colNum = 0
    While (Mid(s, i, 1) <> "")
        colNum = colNum * 26 + (Asc(UCase(Mid(s, i, 1))) - Asc("A") + 1)
        i = i + 1
    Wend
    MsgBox colNum
End Sub

答案 2 :(得分:0)

Function getColNum(colLetter As String) As Long
    On Error Resume Next   'will return 0 if letter > last col
    getColNum = Range(colLetter & "1").Column
End Function