end xlup



Rows count в vba

Автор Вячеслав Заболотный задал вопрос в разделе Другие языки и технологии

Помогите подправить код в VBA и получил лучший ответ

Ответ от Ўля Павлова[гуру]
При отладке желательно непонятные детали распечатывать в Debug.Print (окно ниже текста макроса) или в MsgBox.
И не бойтесь менять хотя бы некоторые параметры, тогда скорее поймёте, что к чему.
MsgBox " 1-ый Ок" можно вставлять между некоторыми операторами, чтобы убедиться, что макрос выполнен до этого места без ошибок, а ошибка, если случилась, ниже. Или пользоваться методами отладки.
Ясно, что строка - это диапазон ячеек Range([a4], [e4]).
mRng.Copy Это метод применяемый к объекту.
Остальное дальше - это адрес, куда копируется.
"Sheet2" - это постоянное (до переименования) имя листа на вкладке. Не путать с Sheets(2) это лист второй вкладки книги, считая слева направо, независимо от того, какое имя и когда он создан.
Именно сейчас он второй, и этом всё сказано.
Если лист переместить в ряду или удалить, другой может стать вторым, если если листов больше одного.
mRng.Copy обращается целиком к объекту, ничего в нём не детализируя.
к отдельной ячейке обращается точно также, в методе Copy работает метод Range.
А вот отдельные свойства уже можно извлечь по разному, запоминая в переменную
x=Range(a4).Value
x=Range(a4).Address
x=Range(a4).Formula
и делать с ними что хочешь.
Если лень возиться с мелочами, копируешь всё сразу, логично?
Адрес результата программа выбирает хитро. Вначале она захватывает все строки
начиная с первой до последней, на которой когда-то побывал курсор или вводились данные, хранящейся в счетчике Rows.Count .
Cells(Rows.Count, 1)
затем снизу вверх ищет самую нижнюю из заполненных строк .End (xlUp)
и затем делает отступ вниз на одну строку
.Offset(1, 0)
То есть результат заносится на строку ниже прежнего содержимого листа.
Если же лист был пуст или только первая строка была занята, то результат будет на второй строке.

Ответ от 22 ответа[гуру]
Привет! Вот подборка тем с похожими вопросами и ответами на Ваш вопрос: Помогите подправить код в VBA
 

Ответить на вопрос:

Имя*

E-mail:*

Текст ответа:*
Проверочный код(введите 22):*