#vba #excel
#vba #excel
Вопрос:
У меня есть некоторый код VBA, который должен выбрать диапазон от A84 до X. Я использую этот код для выбора этого диапазона до последней строки в данных.
Dim Lastrow As Integer
Lastrow = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
Range("A84:X" amp; Lastrow).Select
Это останавливается на первой строке с пустой ячейкой в столбце A. Мне нужно, чтобы он проверял столбцы от A до Z, а не только A. Например, если в столбце A есть значение в строках с 84 по 94, но для строки 95 есть только данные в столбце F или R, он не будет включать строку 95. Как это может посмотреть на столбцы A: Z, чтобы определить, является ли строка пустой?
Комментарии:
1. Столбец X или столбец Z ??
2. Ну, мне нужно выбрать столбец X в диапазоне, но мне нужно, чтобы он проверял A: Z, определяя, является ли он пустым.
Ответ №1:
просто установите Lastrow
значение
Lastrow = Range("A:Z").Find("*", , , , xlByRows, xlPrevious).Row
Ответ №2:
Я почти уверен, что есть лучший способ, но один из таких способов — перебирать столбцы и находить последнюю строку каждого, а затем определять, какой из них является наибольшим.
maxRow = 0
for i=1 to 24 'A through X
if maxRow < ActiveSheet.Cells(Rows.Count, i).End(xlUp).Row then
maxRow = ActiveSheet.Cells(Rows.Count, i).End(xlUp).Row
end if
next i
Тогда maxRow
это то, чем вы хотите lastrow
быть.
Ответ №3:
Вы можете перебрать все столбцы и сравнить последнюю строку каждого столбца. Затем вы можете изменить переменную lastRow всякий раз, когда найдете столбец с большим количеством строк, например:
Dim i As Integer
Dim lastRow As Integer
lastRow = 1
For i = 1 To 26
Dim lst As Integer
lst = Cells(Rows.Count, i).End(xlUp).Row
If lst > lastRow Then
lastRow = lst
End If
Next
Range("A84:X" amp; lastRow).Select
Ответ №4:
Вы можете использовать функцию usedrange, которая возвращает полный диапазон используемых ячеек на вашем листе:, следующим образом:
Рабочие листы («worksheetName»).UsedRange.lastRow
Это даст вам последнюю использованную строку, а не только последнюю строку с данными в первом столбце