Леонард пишет макрос для переноса данных с одного листа на другой. Оба листа находятся в одной книге. Данные, которые он хочет передать, находятся на первом листе и используют именованный диапазон: «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 [Передача данных между рабочими листами с помощью макроса].