Я пытаюсь найти номер последней строки в столбце на конкретном листе VBA Excel. Номер строки необходимо поместить в переменную для дальнейшего использования. Заранее спасибо!
Dim i As Integer
Dim x As Integer
Dim lRow As Integer
Dim subj As String
subj = TextBox1.Text
lRow = ThisWorkbook.Sheets("Data").Range("A").Rows.Lastrow
ThisWorkbook.Sheets("Data").Cells(lRow, 1) = subj
For i = 1 To 1000
If ThisWorkbook.Sheets("Data").Cells(1, i) = ThisWorkbook.Sheets(subj).Cells(1, 1) Then
End If
Next i
Integers в любом случае хранятся как Long, но у них все еще есть ограничения. Так что используйте Long все время.
И подробнее ...... stackoverflow.com/questions/26717148/integer-vs-lo нг-путаница
Возможный дубликат Ошибка поиска последней использованной ячейки в VBA





Если нет пробелов в данных, то
lRow = ThisWorkbook.Sheets("Data").Range("A1").end(xldown).row
В противном случае, если есть пробелы, и вы хотите абсолютное последнее, тогда
lRow = ThisWorkbook.Sheets("Data").Range("A1048576").end(xlup).row
Постараюсь уточнить уже данный ответ.
Чтобы найти последнюю строку / столбец, есть метод End объекта Range. Т.е. если у вас есть Cells(row, column), вы можете добавить к нему .End(), который может иметь четыре аргумента: xlUp, xlDown, xlToLeft, xlToRight. Эта функция возвращает ячейку (то есть объект Range), поэтому для получения номера строки / столбца вам необходимо получить доступ к свойству Row / Column. Подводя итог, вы должны использовать:
Cells(row, column).End(X).Row
Cells(row, column).End(X).Column
где row, column - целые числа, а X - один из упомянутых параметров.
Чтобы найти последнюю строку, вы должны использовать определенный номер столбца (для столбца, который вы хотите узнать последнюю строку). У вас есть два варианта:
xlDown - вы можете думать об этом так: начать с заданной ячейки, затем идти вниз, пока не встретится первая пустая ячейка. Вернуть последнюю непустую ячейку.
xlUp - начать с данной ячейки, затем идти до тех пор, пока не встретится непустая ячейка.
Примечание:, если вы начинаете с пустой ячейки, метод End вернет первую непустую ячейку. С другой стороны, если вы начнете с непустой ячейки, метод End будет работать до тех пор, пока не встретится первая пустая ячейка, и вернет последнюю непустую ячейку.
Все это звучит сложно, но позвольте мне привести несколько примеров:
давай лист:
A
1 1
2 2
3
4 4
5 5
тогда
MsgBox Cells(1, 1).End(xlDown).Row 'returns 2
MsgBox Cells(5, 1).End(xlUp).Row 'returns 4
'start with cell in last row
MsgBox Cells(Rows.Count, 1).End(xlUp).Row 'returns 5
Это вряд ли будет рассмотрено здесь в ответе в качестве хорошей детали, как и должно, если только это не вики сообщества, ИМХО. См. Следующий пример того, почему все зависит от ваших данных: rondebruin.nl/win/s9/win005.htm Тем не менее, следует упомянуть, что не используйте Integer с последней строкой, так как вы рискуете переполниться. Используйте Long.