Как добавить новый столбец в таблицу на основе заголовка заголовка вместо позиции? - PullRequest
0 голосов
/ 30 июня 2019

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

Я могу использовать этот код для добавления столбца в позиции 4, но эта позиция зависит от заголовка заголовка, который может измениться.

Любая подсказка о том, как продолжить об этом?

Worksheets(1).ListObjects("Table1").ListColumns.Add Position:=4

Например: заголовок заголовка находится в позиции 5, код добавит новый столбец в позицию 6. Например: заголовок заголовка теперь находится в позиции 7, код добавит новый столбец в позицию 8.

Ответы [ 2 ]

0 голосов
/ 01 июля 2019

Это должно работать, просто измените "YourHeader" на имя вашего заголовка

Sub AddColAfterHeader()
    [Table1[YourHeader]].Next.EntireColumn.Insert
End Sub

.. или это, если окружающая среда имеет значение

Sub AddColAfterHeader2()
    ActiveSheet.ListObjects("Table1").ListColumns.Add _
    ([Table1[YourHeader]].Next.Column - [Table1].Column + 1)
End Sub
0 голосов
/ 01 июля 2019

Мы можем использовать HeaderRowRange свойство ListObject, чтобы решить это:

Dim HeaderTitle as String, i as Integer, MyTable as ListObject

HeaderTitle = "YourTitleGoesHere" 'change to match your title
Set MyTable = Worksheets(1).ListObjects("Table1")
With MyTable.HeaderRowRange
    For i = 1 to .Count
        If .Cells(i).Value = HeaderTitle Then
            MyTable.ListColumns.Add Position:= i + 1
            Exit For
        End If
    Next i
End With
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...