Оба вопроса
.End(xxx)
совпадает с Ctrl+Arrow
на клавиатуре и останавливается на первой ячейке, которая отличается от текущей ячейки.Поэтому, если вы начинаете с ячейки со значением, она останавливается у ячейки без значения или наоборот.
Проблема с открытием вверху слева и использованием xlDown
и xlToRight
заключается в том, что она остановится напустая ячейка в середине вашего стола.Хорошо, если вы не можете иметь пустую ячейку посередине, но XlUp
или xlToLeft
справа внизу безопаснее.
Вопрос 1
Ваша проблемачто .End(xxx).Column
вернет 12, и вы не знаете, как превратить его в букву "L"?
Так что, есть много вариантов.Я думаю, что проще всего вспомнить, что
.Cells(6,Columns.Count).End(xlToLeft).Address
вернет "$ L $ 6".
Вопрос 2
1033 * представляет нижнюю правую ячейку?
.Cells.SpecialCells(xlCellTypeLastCell)
может быть проще.