Trong hướng dẫn này, bạn sẽ học một số phương pháp khác nhau để Sao chép & Dán và Cắt & Dán bằng macro VBA. Đọc hướng dẫn kèm theo về Dán giá trị và Dán đặc biệt để có các tùy chọn sao chép và dán nâng cao hơn.
Để sử dụng mã này: Mở Visual Basic Editor (Alt + F11), Chèn một mô-đun mới (Chèn> Mô-đun) và sao chép & dán mã mong muốn vào mô-đun.
Sao chép (Cắt) và Dán một ô
Ví dụ này sao chép hoặc cắt và dán một ô, A1 qua B1:
123456789 | Sub Paste_OneCell ()'Sao chép và Dán một ôPhạm vi ("A1"). Sao chép phạm vi ("B1")'Cắt và Dán một ôPhạm vi ("A1"). Phạm vi cắt ("B1")Kết thúc Sub |
Sao chép lựa chọn
Nếu bạn muốn sao chép lựa chọn đang hoạt động, hãy sử dụng cái này:
123456789101112 | Sub CopySelection ()'Dán vào một Phạm vi xác địnhPhạm vi Selection.copy ("b1")'Offset Paste (lệch 2 ô xuống và 1 ô sang phảiSelection.copySelection.offset (2,1) .pasteApplication.CutCopyMode = SaiKết thúc Sub |
Sao chép (Cắt) và Dán một Phạm vi Ô
Ví dụ này sao chép hoặc cắt và dán một dải ô, A1: A3 lên B1: B3:
123456789 | Sub Paste_Range ()'Sao chép và Dán một Dải ôPhạm vi ("A1: A3"). Sao chép phạm vi ("B1: B3")'Cắt và Dán một loạt các ôPhạm vi ("A1: A3"). Phạm vi cắt ("B1: B3")Kết thúc Sub |
Sao chép (Cắt) và Dán Toàn bộ Cột
Dưới đây chúng tôi sẽ trình bày một vài ví dụ nhanh. Đọc bài viết của chúng tôi về Sao chép và Dán Hàng và Cột để biết các ví dụ chi tiết, giải thích và các biến thể.
Ví dụ này sao chép hoặc cắt và dán toàn bộ cột, A qua B:
12345678910 | Sub PasteOneColumn ()'Sao chép và Dán cộtPhạm vi ("A: A"). Sao chép phạm vi ("B: B")'Cắt và Dán CộtPhạm vi ("A: A"). Phạm vi cắt ("B: B")Kết thúc Sub |
Sao chép (Cắt) và Dán Toàn bộ Hàng
Ví dụ này sao chép hoặc cắt và dán toàn bộ hàng, 1 trên 2:
12345678910 | Sub Paste_OneRow ()'Sao chép và Dán hàngPhạm vi ("1: 1"). Sao chép phạm vi ("2: 2")'Cắt và Dán HàngPhạm vi ("1: 1"). Phạm vi cắt ("2: 2")Kết thúc Sub |
Sao chép (Cắt) và Dán vào Trang tính hoặc Sổ làm việc khác
1234567891011121314 | Sub Paste_Other_Sheet_or_Book ()'Cắt hoặc Sao chép và Dán vào một trang tính khácTrang tính ("sheet1"). Phạm vi ("A1"). Sao chép Trang tính ("sheet2"). Phạm vi ("B1") 'Sao chépTrang tính ("sheet1"). Phạm vi ("A1"). Cắt Trang tính ("sheet2"). Phạm vi ("B1") 'Cắt'Cắt hoặc Sao chép và Dán vào một sổ làm việc khácWorkbooks ("book1.xlsm"). Worksheets ("sheet1"). Phạm vi ("A1"). Sao chép _Workbooks ("book2.xlsm"). Worksheets ("sheet1"). Phạm vi ("B1") 'Sao chépWorkbooks ("book1.xlsm"). Worksheets ("sheet1"). Phạm vi ("A1"). Cắt _Workbooks ("book2.xlsm"). Worksheets ("sheet1"). Phạm vi ("B1") 'CắtApplication.CutCopyMode = SaiKết thúc Sub |
Dán giá trị
Thông thường, khi bạn Sao chép và Dán, bạn Dán tất cả các thuộc tính của ô: định dạng, công thức, v.v.… Dán Giá trị cho phép bạn Sao chép và Dán các giá trị của ô và không có gì khác. Cách dễ nhất để Dán Giá trị trong VBA là xác định trực tiếp giá trị của ô:
123456789101112131415 | Giá trị phụ (Sub ValuePaste) ()'Giá trị dán ôPhạm vi ("B1"). Giá trị = Phạm vi ("A1"). Giá trịPhạm vi ("B1: B3"). Giá trị = Phạm vi ("A1: A3"). Giá trị'Đặt giá trị giữa các bảng tínhWorksheets ("sheet2"). Range ("A1"). Value = Worksheets ("sheet1"). Range ("A1"). Value'Đặt giá trị giữa các sổ làm việcWorkbooks ("book2.xlsm"). Worksheets ("sheet1"). Range ("A1"). Value = _Workbooks ("book1.xlsm"). Worksheets ("sheet1"). Range ("A1"). ValueApplication.CutCopyMode = SaiKết thúc Sub |
Dán đặc biệt
Dán Đặc biệt cho phép bạn Sao chép và Dán các thuộc tính cụ thể của ô (ví dụ: định dạng, giá trị, độ rộng cột, v.v.). Nó cũng cho phép bạn thực hiện các thao tác dán đặc biệt (ví dụ: bỏ qua khoảng trống, chuyển vị). Chúng ta sẽ xem xét một số ví dụ bên dưới, nhưng để hiểu sâu hơn, hãy đọc hướng dẫn của chúng tôi về Dán và Dán Giá trị Đặc biệt.
12345678910111213141516171819 | Sub PasteSpecial ()'Thực hiện một thao tác dán đặc biệt:Phạm vi ("A1"). Sao chép'Dán các định dạngPhạm vi ("B1"). PasteSpecial Paste: = xlPasteFormats'Dán Độ rộng của CộtPhạm vi ("B1"). PasteSpecial Paste: = xlPasteColumnWidths'Dán công thứcPhạm vi ("B1"). PasteSpecial Paste: = xlPasteFormulas'Thực hiện nhiều thao tác dán đặc biệt cùng một lúc:Phạm vi ("A1"). Sao chép'Dán định dạng và chuyển vịPhạm vi ("B1"). PasteSpecial Paste: = xlPasteFormats, Operation: = xlNone, SkipBlanks: = _Sai, Transpose: = ĐúngApplication.CutCopyMode = SaiKết thúc Sub |
Xóa khay nhớ tạm
Sau khi Sao chép & Dán, bạn có thể muốn xóa khay nhớ tạm (chúng tôi thực hiện trong một số ví dụ mã ở trên). Để xóa khay nhớ tạm trong Excel, chúng tôi đặt Application.CutCopyMode thành False:
1 | Application.CutCopyMode = Sai |
Thao tác này sẽ xóa khay nhớ tạm của Excel. Tuy nhiên, nó sẽ không xóa Clipboard của Windows. Để xóa khay nhớ tạm thời của Window, hãy làm theo hướng dẫn tại đây.