Henri muốn sao chép dữ liệu có trong ô nguồn sang ô đích mà không cần rời khỏi vị trí hiện tại trên trang tính.

Nói cách khác, anh ta muốn sao chép từ ô A1 sang ô AE459 mà không cần rời khỏi vị trí hiện tại của mình tại V104. Anh ấy tự hỏi liệu một bản chỉnh sửa như vậy có khả thi không.

Tất nhiên, cách tiếp cận rõ ràng cho điều này là chỉ cần đặt công thức = A1 vào ô AE459. Sau đó, Excel sẽ đảm bảo rằng hai ô bằng nhau. Bạn cũng có thể mở cửa sổ thứ hai trên trang tính và thực hiện việc sao chép trong cửa sổ đó; ô được chọn trong cửa sổ ban đầu (ô V104) sẽ không thay đổi.

Tuy nhiên, nếu bạn thực sự muốn thực hiện thao tác “sao chép” mà không cần mở cửa sổ thứ hai, thì bạn sẽ cần dùng đến macro.

Sao chép từ ô này sang ô khác trong một macro khá dễ dàng. Ví dụ: ví dụ sau sẽ sao chép nội dung của ô A1 sang AE459 mà không ảnh hưởng đến bất kỳ ô nào bạn hiện đã chọn:

Sub CopyCell1()

'   Copy the cell value to destination cell     Range("AE459") = Range("A1")

End Sub

Nếu bạn muốn sao chép một công thức trong ô A1 đến đích, thì bạn cần phải sửa đổi cách thực hiện sao chép. Cụ thể, bạn cần sử dụng phương pháp Sao chép sử dụng phạm vi đích làm tham số.

Sub CopyCell2()

'   Copy the relative formula to destination     Range("A1").Copy Range("AE459")

End Sub

Tất nhiên, một hạn chế của các macro này là chúng tĩnh – chúng chỉ sao chép từ ô A1 sang ô AE459. Nếu nhu cầu sao chép của bạn có thể khác nhau, bạn có thể muốn xem xét thực hiện tác vụ trong cửa sổ VB Editor’s ngay lập tức. Chỉ cần mở trình chỉnh sửa và nhập dòng đơn từ macro thích hợp vào cửa sổ. Việc sao chép sau đó được thực hiện và bạn có thể đóng trình chỉnh sửa mà không ảnh hưởng đến bất kỳ ô nào bạn đã chọn.

Một cách khác để cung cấp một chút linh hoạt về nguồn và đích cho macro là để nó (macro) nhắc người dùng về nguồn và đích. Macro sau đây thực hiện cách tiếp cận này.

Sub CopyCell3()

Dim SrceCell As String     Dim DestCell As String

SrceCell = InputBox("Copy From Cell ...")

DestCell = InputBox("Copy To Cell ...")

Range(DestCell) = Range(SrceCell)

End Sub

_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 (9949) áp dụng cho Microsoft Excel 2007, 2010, 2013, 2016, 2019 và Excel trong Office 365.