لئونارد در حال نوشتن یک ماکرو برای کپی داده ها از یک کاربرگ به کاربرگ دیگر است. هر دو کاربرگ در یک کتاب کار هستند. دادههایی که او میخواهد کپی کند در اولین کاربرگ است و از یک محدوده نامگذاری شده استفاده میکند: "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 ندارد.)
اکنون تنها کاری که باید انجام دهید این است که این محدوده های منبع و هدف را برای استفاده با روش Copy قرار دهید:
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 در محدوده منبع استفاده کنید و محدوده هدف را به عنوان مقصد عملیات مشخص کنید. پس از تکمیل، داده های اصلی هنوز در محدوده منبع هستند، اما در هدف کپی شده اند.