... если столбец с именем "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.
