Перенос данных между листами с помощью макроса (Microsoft Excel)
Леонард пишет макрос для переноса данных с одного листа на другой. Оба листа находятся в одной книге. Данные, которые он хочет передать, находятся на первом листе и используют именованный диапазон: «SourceData».
Он состоит из одной строки данных. Леонард хочет в макросе перенести эти данные из первого листа в первую пустую строку на втором листе, но он не совсем уверен, как это сделать.
На самом деле есть несколько способов сделать это, но все методы имеют две предпосылки: идентификацию исходного диапазона и идентификацию целевого диапазона. Исходный диапазон прост, потому что он назван. Вы можете указать исходный диапазон в вашем макросе следующим образом:
Set rngSource = Worksheets("Sheet1").Range("SourceData")
Определить первую пустую строку на целевом листе немного сложнее. Вот относительно простой способ сделать это:
iRow = Worksheets("Sheet2").Cells(Rows.Count,1).End(xlUp).Row + 1 Set rngTarget = Worksheets("Sheet2").Range("A" & iRow)
По завершении переменная rngTarget указывает на диапазон ячейки A в любой первой пустой строке. (В этом случае пустая строка определяется как любая строка, в которой что-то отсутствует в столбце A.)
Теперь все, что вам нужно сделать, это указать эти исходный и целевой диапазоны для использования с методом копирования:
Sub CopySource() Dim rngSource As Range Dim rngTarget As Range Dim iRow As Integer Set rngSource = Worksheets("Sheet1").Range("SourceData") iRow = Worksheets("Sheet2").Cells(Rows.Count,1).End(xlUp).Row + 1 Set rngTarget = Worksheets("Sheet2").Range("A" & iRow) rngSource.Copy Destination:=rngTarget End Sub
Обратите внимание, что с определенными диапазонами все, что вам нужно сделать, это использовать метод Copy для исходного диапазона и указать целевой диапазон как место назначения для операции. По завершении исходные данные все еще находятся в исходном диапазоне, но были скопированы в целевой.
_Примечание: _
Если вы хотите узнать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах ExcelTips), я подготовил специальную страницу, содержащую полезную информацию.
link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера]
.
ExcelTips — ваш источник экономичного обучения Microsoft Excel.
Этот совет (6131) применим к Microsoft Excel 2007, 2010, 2013 и 2016.
Вы можете найти версию этого совета для старого интерфейса меню Excel здесь:
link: / excel-Transferring_Data_between_Worksheets_Using_a_Macro [Передача данных между рабочими листами с помощью макроса]
.