UsedRange - найти последнюю использованную ячейку, столбец или строку
Следующий код вернет окно сообщения с указанием общего количества строк, используемых на листе. Пустые строки считаются использованными, если данные следуют за пустой строкой.
1 | MsgBox ActiveSheet.UsedRange.Rows.Count |
Вам нужно выполнить цикл по листу, но вы не знаете, где заканчиваются данные? ActiveSheet.UsedRange.Rows.Count может помочь.
Поместите это в модуль:
123456789 | Sub LastRow ()Dim LastRow As IntegerLastRow = ActiveSheet.UsedRange.Rows.CountMsgBox LastRowКонец подписки |
123456789 | Sub LastCol ()Dim LastCol As IntegerLastCol = ActiveSheet.UsedRange.Col.CountMsgBox LastColКонец подписки |
Найти первую пустую ячейку
Используя VBA, вам может потребоваться запись в первую пустую ячейку или после последней строки, используемой в столбце. Чтобы найти это, нет необходимости в цикле, следующий код сделает это за вас.
В этом примере код напишет «FirstEmpty» в первой пустой ячейке столбца «d».
1234 | Публичная подписка AfterLast ()ActiveSheet.Range ("d" & ActiveSheet.Rows.Count) .End (xlUp) .Offset (1, 0) .Value = "FirstEmpty"Конец подписки |
Подсчет используемых столбцов на листе
Следующий код вернет в окне сообщения общее количество столбцов, используемых на листе. Пустые столбцы считаются использованными, если данные следуют за пустым столбцом.
1 | MsgBox ActiveSheet.UsedRange.Columns.Count |
Последняя использованная ячейка - проблемы
Когда мне нужно For… Next… Перебирать весь столбец, я обычно использую ActiveSheet.UsedRange.Rows.Count, чтобы найти, где остановиться. Мне всегда везло с таким подходом.
Я также знаю, что иногда Excel думает, что где-то существует последняя строка, но на самом деле строка пуста. Я видел это несколько раз после импорта данных. From BeyondTechnology:
Объект Worksheet UsedRange не всегда работает, потому что используемый диапазон (или «грязная область») электронной таблицы может быть больше, чем область, фактически заполненная вашими записями.