Индексирование через массив по номеру столбца - PullRequest
0 голосов
/ 31 марта 2020

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

Первое, что я делаю, это нахожу отправную точку на основе имя заголовка:

Dim EnvCondCol As String
Dim EnvCondColN As Long
Dim lColVVS As Integer
lColVVS = VET_VS.UsedRange.Columns.Count ' finds last column
For n = 1 To lColVVS
    If UCase(VET_VS.Cells(3, n).Value) Like "*ENVIRONMENTAL CONDITION*" Then ' All Caps when using "like"
        EnvCondCol = Split(VET_VS.Cells(3, n).Address, "$")(1)
        EnvCondColN = Range(EnvCondCol & 1).Column
        Exit For
    End If
Next n

Это работает, и когда я смотрю, EnvCondCol и EnvCondColN могут видеть EnvCondCol = "I" и EnvCondColN = "9". В конце концов, я хочу вставить новый столбец, и эта строка генерирует синтаксическая ошибка:

VET_VS.Range(Columns.(EnvCondColN)).EntireColumn.Insert

Когда я смотрю EnvCondColN, это число, и я попытался изменить dim на другие типы, такие как целое число

Также в другом месте, я хочу скопировать информация из ячейки в другую ячейку изнутри oop. Это приводит к синтаксической ошибке.

VET_VS.Range(Columns.(EnvCondColN + i)).Copy VET_VS.Range(Columns.(EnvCondColN + j))

Если я заменю EnvCondColN на значение, подобное 5, то это работает. Пример: VET_VS.Range(Columns.(5)).EntireColumn.Insert

Почему переменная не работает как ссылка на столбец ??

Спасибо всем за внимание!

1 Ответ

0 голосов
/ 31 марта 2020

изменить

 VET_VS.Range(Columns.(EnvCondColN)).EntireColumn.Insert

на

 VET_VS.Columns(EnvCondColN).EntireColumn.Insert
...