#excel #vba
Вопрос:
Я пытаюсь скопировать выбранный диапазон, используя ссылку на последнюю строку. Мне нужно, чтобы диапазон был (2,10) или C:M. Самое близкое, что я получил, — это использование ссылки на всю строку, но эти данные несовместимы с моим назначением.
Вот что я придумал:
lcopylastrow = _
wscopy.Cells(wscopy.Rows.Count, "C").End(xlUp).Offset(-1).Resize(2).EntireRow.Copy
Любая помощь будет признательна и даст мне знать, если мне нужно быть более конкретным.
Комментарии:
1. thespreadsheetguru.com/blog/2014/7/7/…
2. Я понимаю, как найти последнюю строку. Я пытаюсь копировать фиксированный набор ячеек каждый раз, когда запускается макрос.
3.
Copy
является методомRange
объекта, поэтому нет смысла добавлять его в конец строки, определяющей переменную строки (предположительно). Я действительно не понимаю вашей проблемы.4. Я пытаюсь найти способ скопировать столбцы C:M в последней строке. Я нашел способ скопировать только всю строку, но мне не нужно, чтобы все содержимое копировалось только в определенном диапазоне. Извините, если я неправильно формулирую вопрос.
Ответ №1:
Почему это должно быть на одной линии? Определите последнюю строку, затем скопируйте
lastrow = wscopy.Cells(wscopy.Rows.Count, "C").End(xlUp).Row
wscopy.Range(wscopy.Cells(lastrow, 3), wscopy.Cells(lastrow, 10)).Copy
Комментарии:
1. Причина, по которой я изменил его размер, заключается в том, что я копирую две строки с этими значениями. Это показало ошибку при попытке этого кода, но я ценю другой инструмент, с которым можно попробовать.
2. Просто измените второй на
(lastrow 1, 10)
, и вы скопируете две строки3. Это определенно то направление, в котором мне нужно идти, но у меня возникли проблемы с запуском кода.
4. У вас могут возникнуть другие вопросы, которые необходимо задать в виде отдельных вопросов. Знание того, что
wscopy
такое и как задан этот диапазон, может быть полезным.