[VBA Excel] Cut, Copy và Paste

Thao tác với bảng tính Excel, chắc bạn cũng quá quen với lệnh Cut ( Ctrl + X ), Copy ( Ctrl + C ) và dán dữ liệu bằng lệnh Paste ( Ctrl + V ). Vậy trong VBA Excel, những lệnh trên sẽ được sử dụng và thực thi như thế nào ?
VBA Excel đã tương hỗ sẵn những lệnh như Cut, Copy, Paste và đặc biệt quan trọng là Paste Special. Và làm thế nào để sử dụng thì bài viết này sẽ giúp bạn .

Cách Copy và Paste bằng VBA Excel

Bằng VBA bạn có thể copy Cells hoặc Range. Và khi Paste, bạn cần chỉ định Cells bắt đầu, Excel sẽ tự động điền theo thứ tự hoặc bạn có thể tự lựa chọn.

Bạn đang đọc: [VBA Excel] Cut, Copy và Paste

copy-cut-paste-vba-excel-214-1

Sub copy_paste ( )

Dim wb As Workbook

Dim sh As Worksheet

Set wb = This Workbook

Set sh = wb.Sheets(1)

sh.Range(" A1 : H6 ").Copy Destination:=sh.Range(" J2 ")

sh.Range(" J2 : Q7 ").EntireColumn.AutoFit

End Sub

Code language : Vala (vala)

Cut và Paste

Khác với Copy là sao chép dữ liệu, lệnh Cut sẽ sao chép dữ liệu và đồng thời cũng xóa dữ liệu gốc .
copy-cut-paste-vba-excel-214-2
Về cách viết lệnh cũng tựa như như Copy, bạn chỉ cần đổi khác lệnh Copy thành Cut .

Sub cut_paste ( )

Dim wb As Workbook

Dim sh As Worksheet

Set wb = ThisWorkbook

Set sh = wb.Sheets(1)

sh.Range(" A1 : H6 ").Cut Destination:=sh.Range(" J2 ")

sh.Range(" J2 : Q7 ").EntireColumn.AutoFit

End Sub

Code language : JavaScript (javascript)

Với Copy hoặc Cut và Paste vừa tìm hiểu và khám phá thì bạn đã hoàn toàn có thể lấy được giá trị, Formula, định dạng, Comments … Tuy vậy, Excel cùng tương hỗ Paste Special với nhiều tùy chọn khác nhau. Vậy Paste Special sẽ giúp tất cả chúng ta thực thi được những gì ?

Paste Special

Paste Special sẽ giúp bạn Paste dữ liệu theo chủ đích .
Ví dụ, bạn chỉ muốn giữ lấy giá trị hoặc định dạng dữ liệu hoặc Formula trong vùng dữ liệu được Copy. Thì lệnh Paste thường thì sẽ không thực thi được mà bạn phải sử dụng PasteSpecial .
copy-cut-paste-vba-excel-214-3
Vậy trong VBA Excel, làm thế nào để sử dụng Paste Special ?
Các bạn xét qua những ví dụ dưới đây nhé .
Ví dụ : Cho một bảng giá trị như hình. Trong đó ,

  • Tổng: công thức tính (Số 1 + Số 2)
  • Hiệu: công thức tính (Số 1 – Số 2)
  • Định dạng tùy chỉnh: số âm màu đỏ, số dương màu xanh

[ Blue ]### _);[ Red ](###);#;"text "@

Code language : CSS (css)

=> Thao khảo : Định dạng tùy chỉnh Excel .
copy-cut-paste-vba-excel-214-4

  • Sử dụng hàm VBA như dưới đây:

Sub paste_special ( )

Dim wb As Workbook

Dim sh As Worksheet

Set wb = This Workbook

Set sh = wb.Sheets(1)

sh.Range(" B2 : E9 ").Copy

' Them lenh Spate Special vao bên duoi

End Sub

Code language : PHP (php)

PasteValues

sh. Range("H2: K9 " ). PasteSpecial xlPasteValues

Code language : CSS (css)

copy-cut-paste-vba-excel-214-5
=> Kết quả : Lệnh Paste xlPasteValues chỉ lấy giá trị trong vùng dữ liệu được Copy và không lấy những loại định dạng .

PasteFormats

sh. Range("H2: K9 " ). PasteSpecial xlPasteFormats

Code language : CSS (css)

copy-cut-paste-vba-excel-214-6
Kết quả : Lệnh Paste xlPasteFormats sẽ chỉ lấy những định dạng Format, gồm có những định dạng Text, Number … và không lấy giá trị .

PasteFormulas

sh. Range("H2: K9 " ). PasteSpecial xlPasteFormulas

Code language : CSS (css)

copy-cut-paste-vba-excel-214-7
Kết quả : Lệnh Paste xlPasteFormats sẽ lấy giá trị và gồm có cả công thức tính và không lấy định dạng. Các địa chỉ trong công thức cũng sẽ được tự động hóa kiểm soát và điều chỉnh .

PasteComments

sh. Range("H2: K9 " ). PasteSpecial xlPasteComments

Code language : CSS (css)


Kết quả : Lệnh Paste xlPasteComments chỉ lấy những Comments trong vùng giá trị được sao chép .

PasteValuesAndNumberFormats

sh. Range("H2: K9 " ). PasteSpecial xlPasteValuesAndNumberFormats

Code language : CSS (css)

copy-cut-paste-vba-excel-214-9
Kết quả : Lệnh Paste xlPasteValuesAndNumberFormats sẽ lấy giá trị và những định dạng dữ liệu Number và không lấy những định dạng khác .

PasteValidation

sh. Range(""). PasteSpecial xlPasteValidation

Code language : CSS (css)

Lệnh xlPasteValidation được sử dụng khi bạn muốn sao chép các dữ liệu trong Range chứa các Data Validation.

Ví dụ: Tạo một Combobox bằng Data Validation, khi sử dụng lệnh xlPasteValidation nó sẽ lấy các thuộc tính để tạo một Combobox khác và không bao gồm giá trị hiện tại của Combobox được sao chép.

Kết luận

Như vậy, bạn đã tìm hiểu và khám phá quá những lệnh Copy, Cut, Paste và PasteSpecial thông dụng được sử dụng trong VBA Excel. Với những kỹ năng và kiến thức đã được trình diễn, kỳ vọng bạn đã hoàn toàn có thể vận dụng vào việc làm của mình .
Chúc bạn vui !

[VBA Excel] Cut, Copy và Paste

Bài viết liên quan
Hotline 24/7: O984.666.352
Alternate Text Gọi ngay