Получить номер диапазона столбцов из диапазона в Excel VBA - PullRequest
0 голосов
/ 18 декабря 2018

I link Получить диапазон первого столбца из диапазона в Excel VBA , чтобы понять содержимое.

Мой вопрос:

возможно ли узнать числостолбца, если я знаю имя столбца?например: я хотел бы знать, является ли столбец с именем "mycolumn" числом 1 или 2 или 3 или x ... в таблице с именем "mytable"

С уважением

Ответы [ 2 ]

0 голосов
/ 18 декабря 2018

... если столбец с именем "mycolumn" является числом 1, 2, 3 или x ... в таблице с именем "mytable".

Чтобы найти порядковый номер столбца в его родительской таблице , вам нужно смотреть только на диапазон таблицы, а не на рабочую таблицу, в которой находится таблица.

Нарабочий лист,

=MATCH("mycolumn", mytable[#Headers], 0)

На следующем рисунке приведенная выше формула возвращает 3.

В VBA в качестве функции

Option Explicit

Sub main()

    Debug.Print ColumnNdx("sheet2", "mytable", "mycolumn")

End Sub

Function ColumnNdx(wsnm as string, tblnm As String, colnm As String)

    Dim m As Variant, hdrrng As Range

    ColumnNdx = CVErr(xlErrNA)

    Set hdrrng = ThisWorkbook.Worksheets(wsnm ).ListObjects(tblnm).HeaderRowRange

    m = Application.Match(colnm, hdrrng, 0)

    If Not IsError(m) Then ColumnNdx = CLng(m)

End Function

Вышеприведенная функция возвращает 3.

enter image description here

0 голосов
/ 18 декабря 2018

Range("mycolumn").cells(1,1).column даст вам номер первого столбца в диапазоне, называемом «mycolumn»

РЕДАКТИРОВАТЬ: Мой плохой - я не видел, что это был именованный столбец в таблице - ответ Акселя вкомментарии верны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...