Leonard đang viết macro để chuyển dữ liệu từ trang tính này sang trang tính khác. Cả hai trang tính đều nằm trong cùng một sổ làm việc. Dữ liệu anh ta muốn chuyển nằm trên trang tính đầu tiên và sử dụng một dải ô được đặt tên: “Dữ liệu nguồn”.

Nó bao gồm một hàng dữ liệu. Leonard muốn, trong macro, chuyển dữ liệu này từ trang tính đầu tiên sang hàng trống đầu tiên trên trang tính thứ hai, nhưng anh ấy không chắc chắn về cách thực hiện điều này.

Thực tế có một số cách bạn có thể làm, nhưng tất cả các phương pháp đều có hai điều kiện tiên quyết: Xác định phạm vi nguồn và xác định phạm vi mục tiêu. Phạm vi nguồn dễ dàng vì nó được đặt tên. Bạn có thể chỉ định phạm vi nguồn trong macro của mình theo cách này:

Set rngSource = Worksheets("Sheet1").Range("SourceData")

Việc tìm ra hàng trống đầu tiên trong trang tính mục tiêu phức tạp hơn một chút. Đây là một cách tương đối dễ thực hiện:

iRow = Worksheets("Sheet2").Cells(Rows.Count,1).End(xlUp).Row + 1 Set rngTarget = Worksheets("Sheet2").Range("A" & iRow)

Khi hoàn thành, biến rngTarget trỏ đến phạm vi ô A trong bất kỳ hàng trống đầu tiên nào. (Trong trường hợp này, một hàng trống được định nghĩa là bất kỳ hàng nào không có nội dung nào đó trong cột A.)

Bây giờ tất cả những gì bạn cần làm là đặt các phạm vi nguồn và mục tiêu này để sử dụng với phương thức Sao chép:

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

Lưu ý rằng với các phạm vi được xác định, tất cả những gì bạn cần làm là sử dụng phương pháp Sao chép trên phạm vi nguồn và chỉ định phạm vi mục tiêu làm đích cho hoạt động. Khi hoàn tất, dữ liệu gốc vẫn nằm trong phạm vi nguồn, nhưng đã được sao chép vào đích.

_Lưu ý: _

Nếu bạn muốn biết cách sử dụng các macro được mô tả trên trang này (hoặc trên bất kỳ trang nào khác trên trang ExcelTips), tôi đã chuẩn bị một trang đặc biệt bao gồm thông tin hữu ích.

ExcelTips là nguồn của bạn để đào tạo Microsoft Excel hiệu quả về chi phí.

Mẹo này (3852) áp dụng cho Microsoft Excel 97, 2000, 2002 và 2003. Bạn có thể tìm thấy phiên bản của mẹo này cho giao diện ribbon của Excel (Excel 2007 trở lên) tại đây: