Szilvia có thể tạo một tập hợp các ô được chọn, sao cho cô ấy có một dải ô không liền nhau được chọn. Nếu cô ấy cố gắng sao chép các ô đó bằng Ctrl + C, Excel sẽ thông báo cho cô ấy rằng “hành động này sẽ không hoạt động trên nhiều lựa chọn.” Szilvia tự hỏi liệu có cách nào để sao chép một phạm vi không liền kề và sau đó dán phạm vi đó để các ô ở cùng một vị trí tương đối như trong lựa chọn ban đầu.

Rõ ràng, giới hạn này là chỉ cho phép bạn sao chép và dán các dải ô liền kề là cách mà Excel được thiết kế để hoạt động. Cách duy nhất bạn có thể sao chép và dán một dải ô không liền kề là sử dụng macro — một macro bước qua từng ô trong vùng chọn và dán nó liên quan đến địa chỉ đích. Sau đây là một ví dụ:

Sub CopyPasteCells()

Dim sTemp As String     Dim sTarget As String     Dim c As Range     Dim pasteRng As Range

sTemp = InputBox("Target cell?")

sTarget = Trim(sTemp)

If sTarget > "" Then         Set pasteRng = ActiveSheet.Range(sTarget)

For Each c In Selection             c.Copy             pasteRng.Range(c.Address).PasteSpecial xlPasteValues         Next     End If     Application.CutCopyMode = False End Sub

Để sử dụng macro, chỉ cần tạo nhóm ô lựa chọn của bạn. Sau đó, chạy macro và chỉ định ô đích để dán. Các ô được dán liên quan đến ô đích đó trên trang tính hiện tại.

Bạn nên lưu ý rằng macro kiểm tra lỗi rất ít. Ví dụ: bạn có thể nhập một số địa chỉ ô đích hoàn toàn không có thật và macro sẽ cố gắng đáp ứng yêu cầu của bạn. (Nếu địa chỉ đích quá không có thật, bạn sẽ nhận được thông báo lỗi.)

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

Mẹo này (5228) áp dụng cho Microsoft Excel 2007, 2010, 2013, 2016, 2019 và Excel trong Office 365.