Номер столбца Excel из имени столбца
Как получить номер столбца из имени столбца в Excel с помощью макроса Excel?
5 ответов:
Я думаю, что вы хотите этого?
имя столбца к номеру столбца
Sub Sample() ColName = "C" Debug.Print Range(ColName & 1).Column End Sub
Edit: также включая обратное того, что вы хотите
количество столбцов имя
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 (например. АА), ответил @Ian), где A1 содержит номер вашего столбца:
=замена (адрес(1, A1,4),"1","")
обратите внимание, что оба эти метода работают независимо от того, сколько букв в имени столбца.
надеюсь, это поможет кому-то еще.
вы можете пропустить все это и просто поместить свои данные в таблицу. Затем обратитесь к таблице и заголовку, и он будет полностью динамическим. Я знаю, что это от 3-х лет назад, но кто-то еще может найти это полезным.
пример кода:
Activesheet.Range("TableName[ColumnName]").Copy
вы также можете использовать :
activesheet.listobjects("TableName[ColumnName]").Copy
вы даже можете использовать эту справочную систему в формулах рабочего листа. Это очень динамично.
надеюсь, что это помогает!