VBA dán đặc biệt - 5 cách sử dụng VBA PasteSpecial Function?

Tương tự như trang tính khi chúng tôi sao chép dữ liệu và dán nó trên một phạm vi ô khác, chúng tôi có một phương pháp dán đặc biệt cho phép chúng tôi dán dữ liệu dưới dạng chính nó hoặc chỉ các công thức hoặc chỉ các giá trị và kiểu tương tự, chúng tôi có thể sử dụng Dán Đặc biệt trong VBA bằng cách sử dụng phương pháp thuộc tính phạm vi như sau phạm vi. dán đặc biệt () cung cấp loại chúng ta muốn trong dấu ngoặc.

Dán đặc biệt trong VBA

Dán Đặc biệt trong excel phục vụ nhiều mặt trong công việc hàng ngày của chúng ta. Sử dụng đặc biệt dán, chúng ta có thể làm được nhiều việc hơn những cách thông thường. Sao chép và dán có ở khắp mọi nơi trong thế giới máy tính. Nhưng đặc biệt dán là thứ nâng cao trong excel.

Giống như cách dán đặc biệt của excel thông thường trong VBA, chúng tôi có phương pháp dán đặc biệt để dán dữ liệu đã sao chép. Sao chép những thứ trong excel không phải là một điều xa lạ đối với người dùng excel, họ sao chép, dán và hầu hết họ sử dụng dán đặc biệt để phục vụ mục đích của họ theo nhiều cách.

Trong excel thông thường, dán bao gồm nhiều tùy chọn như chỉ dán giá trị, dán công thức, dán định dạng và v.v.…

Paste đặc biệt phải Paste, Operation, Skip Blanks và Transpose như thế này trong VBA. Chúng tôi có tất cả các tham số với phương pháp Paste Special .

Công thức dán đặc biệt trong VBA

Dưới đây là Công thức để Dán Đặc biệt trong VBA

Dán Đặc biệt khả dụng với đối tượng Phạm vi VBA vì sau khi sao chép dữ liệu, chúng tôi sẽ dán nó vào phạm vi ô, vì vậy phương pháp dán đặc biệt khả dụng với đối tượng phạm vi .

Loại dán: Sau khi sao chép dữ liệu, bạn muốn dán như thế nào. Cho dù bạn muốn dán các giá trị, công thức, định dạng, xác thực, v.v.… Dưới đây là danh sách đầy đủ các tùy chọn có sẵn trong Loại Dán.

Dán Thao tác Đặc biệt: Trong khi dán, bạn có muốn thực hiện bất kỳ loại thao tác nào như cộng, trừ, chia, nhân hay không.

  • (Bỏ qua khoảng trống): Nếu bạn muốn bỏ qua khoảng trống, bạn có thể chọn ĐÚNG hoặc SAI.
  • (Transpose): Nếu bạn muốn chuyển đổi dữ liệu, bạn có thể chọn TRUE hoặc FALSE.

Ví dụ về Dán Đặc biệt trong Excel VBA

Sau đây là các ví dụ về dán đặc biệt trong VBA.

Ví dụ # 1 - Chỉ dán các Giá trị bằng VBA PasteSpecial Function

Trong ví dụ đầu tiên, chúng tôi sẽ chỉ thực hiện dán các giá trị bằng cách dán đặc biệt. Giả sử bên dưới là dữ liệu bạn có trong tên trang tính được gọi là Dữ liệu bán hàng.

Bây giờ chúng ta sẽ thực hiện nhiệm vụ sao chép và dán bằng một số phương pháp dán đặc biệt. Làm theo các bước dưới đây.

Bước 1: Tạo tên macro trước.

Bước 2: Đầu tiên, sao chép phạm vi A1 đến D14 từ tên trang tính “Dữ liệu bán hàng”. Để sao chép phạm vi, hãy áp dụng mã dưới đây.

Mã:

Phạm vi ("A1: D14"). Sao chép

Bước 3: Sau khi sao chép dữ liệu, chúng ta sẽ dán các giá trị từ G1 đến J14. Đầu tiên, hãy tham chiếu phạm vi.

Mã:

Phạm vi ("G1: J14")

Bước 4: Sau khi chọn phạm vi, chúng ta cần dán. Vì vậy, hãy đặt một dấu chấm (.) Và chọn Paste Special method.

Mã:

Sub PasteSpecial_Example1 () Range ("A1: D14"). Copy Range ("G1: J14"). PasteSpecial End Sub

Bước 5: Từ danh sách thả xuống, chọn tùy chọn “xlPasteValues”.

Mã:

Sub PasteSpecial_Example1 () Range ("A1: D14"). Copy Range ("G1: J14"). PasteSpecial xlPasteValues ​​End Sub

Bước 6: Bây giờ chạy mã này bằng cách sử dụng phím F5 hoặc thủ công và xem điều gì sẽ xảy ra.

Vì vậy, mã của chúng tôi đã sao chép dữ liệu từ A1 sang D14 và dán từ G1 sang J14 dưới dạng các giá trị.

Nó đã thực hiện nhiệm vụ của phím tắt excel trong bảng tính ALT + E + S + V .

Ví dụ # 2 - Dán Tất cả bằng VBA PasteSpecial

Bây giờ chúng ta sẽ xem điều gì sẽ xảy ra nếu chúng ta thực hiện tác vụ của xlPasteAll.

Mã:

Sub PasteSpecial_Example2() Range("A1:D14").Copy Range("G1:J14").PasteSpecial xlPasteAll End Sub

Now, if you run this code manually through the run option or by pressing the F5 key, we will have as it is data.

Example #3 - Paste Formats using VBA PasteSpecial Function

Now we will see how to paste only formats. The Below code would do the job for us.

Code:

Sub PasteSpecial_Example3() Range("A1:D14").Copy Range("G1:J14").PasteSpecial xlPasteFormats End Sub

If you run this code using the F5 key or manually, we will get the only format of the copied range, nothing else.

Example #4 - Paste Column Width using VBA Paste Special

Now we will see how to paste only column width from the copied range. For this, I have increased the column width for one of my data columns.

Apply the below code it will paste only the column width of the copied range.

Code:

Sub PasteSpecial_Example3() Range("A1:D14").Copy Range("G1:J14").PasteSpecial xlPasteColumnWidths End Sub

Run this code and see the difference in the column width.

Now we can see Sales column width has been increased to the column width of our copied range column.

Example #5 - Copy the Data from One Sheet to Another Sheet using VBA Paste Special Option

We have seen how to copy and paste the data on the same sheet. Now we will how to paste from one sheet to another sheet.

Step 1: Before we select the range, we need to tell from which sheet we need to select the data.

Code:

Sub PasteSpecial_Example5() Worksheets ("Sales Data") End Sub

Step 2: After selecting the sheet by its name, then we need to select the range in that sheet. The copy it.

Code:

Sub PasteSpecial_Example5() Worksheets("Sales Data").Range("A1:D14").Copy End Sub

The above code says in the sheet name “Sales Data” copy the Range, (“A1:D14”)

Step 3: Since we are pasting it in a different sheet, we need to select the sheet by its name.

Code:

Sub PasteSpecial_Example5() Worksheets("Sales Data").Range("A1:D14").Copy Worksheets ("Month Sheet") End Sub

Step 4: Now, in the sheet “Month Sheet,” select the range.

Code:

Sub PasteSpecial_Example5() Worksheets("Sales Data").Range("A1:D14").Copy Worksheets("Month Sheet").Range ("A1:D14") End Sub

Step 5: Using Paste special, we will be pasting values and format.

Code:

Sub PasteSpecial_Example5() Worksheets("Sales Data").Range("A1:D14").Copy Worksheets("Month Sheet").Range("A1:D14").PasteSpecial xlPasteValuesAndNumberFormats End Sub

Step 6: We are not only pasting values and format using VBA Paste Special, but we are pasting it as TRANSPOSE as well.

Code:

Sub PasteSpecial_Example5() Worksheets("Sales Data").Range("A1:D14").Copy Worksheets("Month Sheet").Range("A1:D14").PasteSpecial xlPasteValuesAndNumberFormats, Transpose:=True End Sub

Now run this code. It will copy and transpose the data to the “Month Sheet.”

Things to Remember About Excel VBA PasteSpecial Function

  • Nếu bạn muốn bỏ qua khoảng trống, bạn cần nhập đối số là TRUE theo mặc định. Nó mất FALSE.
  • Nếu bạn muốn chuyển đổi dữ liệu, chúng ta cần chọn chuyển vị là ĐÚNG.
  • Chúng tôi chỉ có thể thực hiện một lần dán đặc biệt tại một thời điểm.

thú vị bài viết...