Номер столбца 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
снимок
пока вы искали решение 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