VBA Transpose (Từng bước) - 2 phương pháp hàng đầu để chuyển vị trong VBA

Chúng ta đã thấy chức năng chuyển vị trong trang tính excel khi chúng tôi dán bất kỳ bảng dữ liệu nào vào trang tính, chức năng chuyển vị làm là nó thay đổi vị trí của các hàng và cột tức là các hàng trở thành cột và cột trở thành hàng trong bảng dữ liệu, bây giờ vì nó là một trang tính trong VBA chúng ta sử dụng nó với phương thức Application.worksheet trong VBA.

Làm thế nào để Transpose trong VBA?

Chuyển đổi hàng và cột là một trong những kỹ thuật thao tác dữ liệu mà hầu như người dùng nào cũng làm trong excel. Quá trình chuyển đổi dữ liệu ngang sang dữ liệu dọc và dọc sang ngang được gọi là “Transpose” trong excel. Tôi chắc rằng bạn phải quen thuộc với Chuyển đổi trong một trang tính thông thường. Trong bài viết này, chúng tôi sẽ hướng dẫn bạn cách sử dụng phương thức chuyển đoạn trong mã hóa VBA.

Chúng ta có thể hoán vị trong VBA bằng hai phương pháp.

  1. Transpose sử dụng công thức TRANSPOSE.
  2. Transpose bằng phương pháp dán đặc biệt.

Khi chúng ta chuyển đổi, chúng ta đang hoán đổi hàng sang cột và cột thành hàng. Ví dụ: nếu dữ liệu nằm trong mảng 4 X 3, thì nó sẽ trở thành mảng 3 X 4.

Hãy xem một số ví dụ để chuyển đổi cột thành hàng trong VBA.

# 1 - VBA Transpose sử dụng công thức TRANSPOSE

Giống như cách chúng ta sử dụng TRANSPOSE trong excel tương tự, chúng ta cũng có thể sử dụng công thức TRANSPOSE trong VBA. Chúng tôi không có công thức TRANSPOSE trong VBA, vì vậy chúng tôi cần sử dụng nó trong lớp Hàm Worksheet.

Ví dụ, hãy nhìn vào hình ảnh dữ liệu dưới đây.

Chúng tôi sẽ cố gắng chuyển đổi mảng giá trị này. Làm theo các bước dưới đây để chuyển đổi dữ liệu.

Bước 1: Bắt đầu quy trình con.

Mã:

Sub Transpose_Example1 () End Sub

Bước 2: Đầu tiên, chúng ta cần quyết định nơi chúng ta sẽ chuyển dữ liệu. Trong điều này, tôi đã chọn chuyển từ ô D1 sang ô H2. Vì vậy, hãy nhập mã VBA dưới dạng Phạm vi (“D1: H2”). Giá trị =

Mã:

Sub Transpose_Example1 () Dải ("D1: H2"). Giá trị = End Sub

Bước 3: Bây giờ, trong phạm vi được đề cập ở trên, chúng ta cần giá trị của phạm vi A1 đến B5. Để đến lớp “Hàm trang tính” đang mở này và chọn công thức “Chuyển vị”.

Bước 4: Trong Arg 1, cung cấp phạm vi nguồn dữ liệu, tức là Phạm vi (“A1: D5”) .

Mã:

Sub Transpose_Example1 () Phạm vi ("D1: H2"). Giá trị = WorksheetFunction.Transpose (Phạm vi ("A1: D5")) Kết thúc Sub

Ok, chúng ta đã hoàn tất mã hóa công thức TRANSPOSE. Bây giờ hãy chạy mã để xem kết quả trong dải ô từ D1 đến H2.

Như chúng ta đã thấy trong hình trên, nó đã chuyển đổi phạm vi ô từ cột thành hàng.

# 2 - VBA Transpose sử dụng phương pháp dán đặc biệt

Chúng ta cũng có thể hoán vị bằng phương pháp Dán Đặc biệt. Hãy xem xét cùng một dữ liệu cho ví dụ này.

Điều đầu tiên chúng ta cần làm để chuyển vị là sao chép dữ liệu. Vì vậy, hãy viết mã dưới dạng Phạm vi (“A1: B5”). Sao chép

Mã:

Sub Transpose_Example2 () Range ("A1: B5"). Sao chép End Sub

Điều tiếp theo là chúng ta cần quyết định nơi chúng ta sẽ dán dữ liệu. Trong trường hợp này, tôi đã chọn D1 làm ô đích mong muốn.

Mã:

Sub Transpose_Example2 () Phạm vi ("A1: B5"). Sao chép Phạm vi ("D1"). Kết thúc Sub

Khi ô đích mong muốn được chọn, chúng ta cần chọn “Dán phương pháp đặc biệt”.

Với dán đặc biệt, chúng tôi có thể thực hiện tất cả các hành động chúng tôi có với các phương pháp dán đặc biệt thông thường trong một trang tính.

Bỏ qua tất cả các tham số và chọn tham số cuối cùng, tức là Transpose, và đặt nó là TRUE.

Mã:

Sub Transpose_Example2 () Range ("A1: B5"). Copy Range ("D1"). PasteSpecial Transpose: = True End Sub

Thao tác này cũng sẽ chuyển dữ liệu giống như phương pháp trước.

Như vậy, chúng ta có thể sử dụng công thức TRANSPOSE hoặc phương thức Paste Special để hoán vị dữ liệu để chuyển hàng thành cột và cột thành hàng.

Những điều cần ghi nhớ

  • Nếu chúng ta đang sử dụng hàm trang tính TRANSPOSE, thì bắt buộc phải tính toán một số hàng và cột để chuyển đổi dữ liệu. Nếu chúng ta có 5 hàng và 3 cột, thì trong khi hoán vị, nó sẽ trở thành 3 hàng và 5 cột.
  • Nếu bạn muốn có cùng một định dạng trong khi sử dụng dán đặc biệt, thì bạn phải sử dụng đối số Loại dán là “xlPasteFormats.”

Bạn có thể tải xuống Mẫu Excel Transpose VBA này từ đây - Mẫu Excel Transpose VBA.

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