Vba: как найти последний использованный столбец
Вы можете использовать следующий базовый синтаксис в VBA, чтобы найти последний использованный столбец в листе Excel:
Sub FindLastColumn()
Range(" A14 ") = Cells.Find("*",Range(" A1 "),xlFormulas,xlPart,xlByColumns,xlPrevious,False).Column
End Sub
В этом конкретном примере выполняется поиск последнего использованного столбца на текущем листе и возвращается результат в ячейку A14 .
Если вместо этого вы хотите отобразить последний столбец окна сообщения, вы можете использовать следующий синтаксис:
Sub FindLastColumn()
Dim LastCol As Long
LastCol=Cells.Find("*",Range(" A1 "),xlFormulas,xlPart,xlByColumns,xlPrevious,False).Column
MsgBox " Last Column: " & LastCol
End Sub
Следующие примеры показывают, как использовать каждый из этих методов на практике.
Связанный: VBA: как найти последнюю использованную строку
Пример 1. Найдите последний столбец с помощью VBA и отобразите результаты в ячейке.
Допустим, у нас есть следующий набор данных в Excel, содержащий информацию о различных баскетболистах:
Мы можем создать следующий макрос, чтобы найти последний столбец, использованный в этом листе Excel, и отобразить результат в ячейке A14 :
Sub FindLastColumn()
Range(" A14 ") = Cells.Find("*",Range(" A1 "),xlFormulas,xlPart,xlByColumns,xlPrevious,False).Column
End Sub
Когда мы запускаем этот макрос, мы получаем следующий вывод:
Обратите внимание, что ячейка A14 содержит значение 2 .
Это говорит нам о том, что последний столбец, использованный на этом конкретном листе, — это столбец 2.
Также стоит отметить, что если у вас есть пустые столбцы перед использованным столбцом, этот макрос всегда найдет последний использованный столбец.
Например, предположим, что мы запускаем макрос для следующего набора данных:
Ячейка A14 содержит значение 5 , поскольку это последний столбец, содержащий значения.
Пример 2. Найдите последний столбец с помощью VBA и отобразите результаты в окне сообщения.
Предположим, что вместо этого мы хотим найти последний использованный столбец на листе и отобразить номер столбца в окне сообщения.
Для этого мы можем создать следующий макрос:
Sub FindLastColumn()
Dim LastCol As Long
LastCol=Cells.Find("*",Range(" A1 "),xlFormulas,xlPart,xlByColumns,xlPrevious,False).Column
MsgBox " Last Column: " & LastCol
End Sub
Когда мы запускаем этот макрос, мы получаем следующий вывод:
В окне сообщения сообщается, что последний столбец, использованный на листе, — это столбец 2 .
Примечание . Полную документацию по методу Find VBA можно найти здесь .
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные задачи в VBA:
VBA: Как рассчитать среднее значение диапазона
VBA: как подсчитать количество строк в диапазоне
VBA: Как удалить повторяющиеся значения в диапазоне