VBA Copy Paste - Các cách hàng đầu để sao chép và dán trong VBA (với các ví dụ)

Sao chép Dán trong VBA tương tự như những gì chúng ta làm trong trang tính excel, giống như chúng ta có thể sao chép một giá trị và dán nó vào một ô khác, chúng ta có thể sử dụng dán đặc biệt để chỉ dán các giá trị, tương tự trong VBA chúng ta sử dụng phương pháp sao chép với thuộc tính phạm vi để sao chép giá trị từ ô này sang ô khác và để dán giá trị, chúng tôi sử dụng hàm trang tính phương pháp dán hoặc dán đặc biệt.

Làm thế nào để Sao chép Dán trong VBA?

Dưới đây là một số ví dụ về cách sao chép-dán trong excel bằng VBA.

Điều cơ bản chúng ta làm trong excel là sao chép, cắt và dán dữ liệu từ ô này sang ô khác. Nó cũng không yêu cầu giới thiệu đặc biệt. Tuy nhiên, trong khi học mã VBA, điều quan trọng là phải hiểu khái niệm tương tự trong ngôn ngữ mã hóa. Copy Paste trong VBA là công việc hàng ngày chúng ta làm trong excel. Để sao chép trước hết chúng ta cần quyết định ô sẽ sao chép.

Ví dụ # 1 - Sao chép và dán giá trị bằng đối tượng phạm vi

Giả sử bạn có từ “Excel VBA” trong ô A1.

Ví dụ, nếu bạn muốn sao chép ô A1, chúng ta có thể sử dụng đối tượng VBA RANGE.

Mã:

Sub Copy_Example () Phạm vi ("A1"). Kết thúc Sub

Thời điểm bạn tham chiếu ô, chúng tôi có thể thấy tất cả các thuộc tính và phương thức với ô đó. Vì vậy, hãy chọn phương pháp “ Sao chép”.

Mã:

Sub Copy_Example () Range ("A1"). Sao chép End Sub

Sau khi chọn phương thức, nhấn phím khoảng trắng để xem đối số của phương thức Sao chép.

Nó cho biết Điểm đến.

Đây không phải là gì, nhưng bạn muốn sao chép-dán các giá trị trong VBA mà không chọn phương pháp PASTE.

Nếu chúng ta đang dán trong cùng một trang tính, chúng ta có thể chọn ô bằng cách sử dụng đối tượng Phạm vi. Giả sử nếu chúng ta muốn dán giá trị vào ô B3, chúng ta có thể đặt đích là “Phạm vi (“ B3 ”).”

Mã:

Sub Copy_Example () Range ("A1"). Copy Destination: = Range ("B3") End Sub

Thao tác này sẽ sao chép dữ liệu từ ô A1 và dán vào ô B3.

Chúng tôi cũng có thể sử dụng phương pháp dưới đây để dán dữ liệu.

Mã:

Sub Copy_Example () Range ("A1"). Copy Range ("B3"). Chọn ActiveSheet.Paste End Sub

Đầu tiên, chúng ta sẽ sao chép và chọn dữ liệu từ ô A1 và dán vào ô B3.

Ví dụ # 2 - Sao chép sang một Trang tính khác trong cùng một sổ làm việc

Bây giờ, nếu chúng ta muốn sao chép-dán giá trị từ các trang tính khác nhau bằng macro VBA, thì trong đối số Đích, chúng ta cần tham chiếu tên trang tính bằng cách sử dụng đối tượng WORKSHEETS, sau đó đề cập đến phạm vi ô trong BẢNG TÍNH đó. Đoạn mã dưới đây sẽ thực hiện công việc.

Mã:

Sub Copy_Example () Range ("A1"). Copy Destination: = Worksheets ("Sheet2"). Range ("B3") End Sub

Nếu chúng ta muốn sao chép dữ liệu từ một trang tính cụ thể và muốn dán vào một trang tính cụ thể khác, chúng ta cần đề cập đến cả tên của các trang tính.

Đầu tiên chúng ta cần nói đến bảng sao chép.

Worksheets ("Sheet1"). Phạm vi ("A1"). Sao chép

Sau đó, trong đối số Đích, chúng ta cần đề cập đến tên trang tính được nhắm mục tiêu và phạm vi của ô.

Đích: = Worksheets ("Sheet2"). Phạm vi ("B3")

Vì vậy, mã sẽ như thế này.

Mã:

Sub Copy_Example () Worksheets ("Sheet1"). Range ("A1"). Copy Destination: = Worksheets ("Sheet2"). Range ("B3") End Sub

Ví dụ # 3 - Sao chép từ một sổ làm việc sang một sổ làm việc khác

Chúng ta đã thấy cách sao chép từ trang tính sang trang tính khác trong cùng một sổ làm việc. Nhưng chúng ta cũng có thể thực hiện việc này từ sổ làm việc này sang sổ làm việc khác.

Hãy xem đoạn mã dưới đây.

Mã:

SubCopy_Example () Workbooks ("Book 1.xlsx"). Worksheets ("Sheet1"). Phạm vi ("A1"). Sao chép Workbooks ("Book 2.xlsx"). Kích hoạt ActiveWorkbook.Worksheets ("Sheet 2"). Chọn ActiveSheet.Paste End Sub

Trước hết nó sẽ sao chép dữ liệu từ trang tính “Sheet1” trong sổ làm việc “Book1.xlsx” từ ô A1.

Workbooks("Book 1.xlsx").Worksheets("Sheet1").Range("A1").Copy”

Then it will activate the workbook “Book 2.xlsx”.

Workbooks("Book 2.xlsx").Activate

In the active workbook, it will select the worksheet “Sheet 2.”

ActiveWorkbook.Worksheets("Sheet 2").Select

Now in the active sheet, it will paste.

ActiveSheet.Paste

Alternative Way for using Copy-Paste in VBA

We have one more alternative way of having the data from one cell to another cell. Assume you have the word “Excel VBA” in the cell A1 and you need the same to come in cell B3.

One method we have seen is using the VBA copy and paste method. Now I will show you one of the alternative ways. Look at the below piece of code to understand.

Code:

Sub Copy_Example1() Range("A1").Value = Range("B3").Value End Sub

The above says whatever the value is there in the cell A1 should be equal to the value in the cell B3.

Range("A1").Value = Range("B3").Value

Even though this is not a copy and paste method still adds more value to our coding knowledge.

Top Ways of VBA Copy and Paste as Values

Now we will see different ways of VBA copy and paste values. Assume you are in the cell A1 as shown in the below image.

  • If we want to copy and paste, we need to reference the cell here. Rather we can just use a property of Selection. Copy method.

Code:

Sub Copy_Example1() Selection.Copy Destination:=Range("B3") End Sub

OR

Sub Copy_Example1() ActiveCell.Copy Destination:=Range("B3") End Sub
  • If you want to copy the entire used range of the worksheet, you can use the below code.

Code:

Sub Copy_Example2 () Worksheets ("Sheet1"). UsedRange.Copy Destination: = Worksheets ("Sheet2"). Range ("A1") End Sub

Thao tác này sẽ sao chép toàn bộ phạm vi đã sử dụng trong trang tính “Sheet1” và sẽ dán tương tự vào trang tính “Sheet2”.

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