Номер столбца Excel из имени столбца

Как получить номер столбца из имени столбца в Excel с помощью макроса Excel?

5 ответов


Я думаю, вы этого хотите?

имя столбца в номер столбца

Sub Sample()
    ColName = "C"
    Debug.Print Range(ColName & 1).Column
End Sub

редактировать: также включая обратное того, что вы хотите

номер столбца В имя столбца

Sub Sample()
    ColNo = 3
    Debug.Print Split(Cells(, ColNo).Address, "$")(1)
End Sub

СЛЕДИТЬ

например, если у меня есть поле зарплаты в самом верху, скажем, в ячейке C (1,1) теперь, если я изменю файл и перенесу столбец зарплаты в другое место скажем, F (1,1), тогда мне придется изменить код, поэтому я хочу, чтобы код проверял зарплату и находил номер столбца, а затем выполнял остальные операции в соответствии с этим номером столбца.

в таком случае я бы рекомендовал использовать .FIND см. этот пример ниже

Option Explicit

Sub Sample()
    Dim strSearch As String
    Dim aCell As Range

    strSearch = "Salary"

    Set aCell = Sheet1.Rows(1).Find(What:=strSearch, LookIn:=xlValues, _
    LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
    MatchCase:=False, SearchFormat:=False)

    If Not aCell Is Nothing Then
        MsgBox "Value Found in Cell " & aCell.Address & _
        " and the Cell Column Number is " & aCell.Column
    End If
End Sub

снимок

enter image description here


пока вы искали решение VBA, это был мой лучший результат в google при поиске решения формулы, поэтому я добавлю это для всех, кто пришел сюда для этого, как я сделал:

Формула Excel для возврата номер из буквы столбца (из комментария @A. Klomp выше), где ячейка A1 содержит букву(Ы) столбца:

=столбец (косвенный (A1& "1"))

поскольку косвенная функция является изменчивой, она пересчитывается всякий раз, когда ячейка изменена, поэтому, если у вас их много, это может замедлить работу вашей книги. Рассмотрим другое решение, такое как функция "код", которая дает вам число для символа ASCII, начиная с " A " в 65. Обратите внимание, что для этого вам нужно будет проверить, сколько цифр находится в имени столбца, и изменить результат в зависимости от "A", " BB " или "CCC".

Формула Excel для возврата столбец письмо от числа (из этого предыдущего вопроса как преобразовать a номер столбца (например. 127) в столбец excel (например. AA), ответил @Ian), где A1 содержит номер вашего столбца:

=замена (адрес (1, A1,4),"1","")

обратите внимание, что оба этих метода работают независимо от количества букв в имени столбца.

надеюсь, это поможет кому-то еще.


вы можете пропустить все это и просто поместить свои данные в таблицу. Затем обратитесь к таблице и заголовку, и он будет полностью динамическим. Я знаю, что это от 3-х лет назад, но кто-то еще может найти это полезным.

пример кода:

Activesheet.Range("TableName[ColumnName]").Copy

вы также можете использовать :

activesheet.listobjects("TableName[ColumnName]").Copy

вы даже можете использовать эту справочную систему в формулах рабочего листа. Очень динамично.

надеюсь, что это помогает!


напишите и запустите следующий код в окне Immediate

?cells(,"type the column name here").column
?cells(,"BYL").column вернется 2014. Код нечувствителен к регистру, поэтому вы можете написать ?cells(,"byl").column и выход все равно будет таким же.

на мой взгляд, самый простой способ получить номер столбца:
Sub Sample() ColName = ActiveCell.Column MsgBox ColName End Sub