Я использую Excel 2013, и, насколько я вижу, свойства UsedRange и UsedRange.Count работают правильно
В предыдущих версиях я помню, что заметил, что они ненадежны, и я думаю, что это может бытьпричины некоторых более старых сообщений, например stackoverflow.com / questions / 11169445 ...
Обратите внимание, что UsedRange - это одиночная прямоугольная область, ограниченная сверху, справа, снизуи самые левые непустые ячейки, так что последняя использованная строка, таким образом, будет
ActiveSheet.UsedRange.Row + ActiveSheet.UsedRange.Rows.Count - 1
. Обратите внимание также на то, что UsedRange ВКЛЮЧАЕТ все ячейки, которые имеют любое содержимое, например границу, внутреннюю раскраску или комментарий,не только те, которые имеют значение или формулу
В зависимости от того, чего вы пытаетесь достичь, использование методов SpecialCells и Find может быть предпочтительным;например, Последняя использованная строка также может быть найдена с помощью
ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row