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 tôi 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 chắn rằng bạn phải quen thuộc với Transposing 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 vị trong mã hóa VBA.
Chúng ta có thể hoán vị trong VBA bằng hai phương pháp.
- Transpose sử dụng công thức TRANSPOSE.
- Transpose bằng cách sử dụ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 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 trong lớp Hàm Worksheet.
Để có một ví dụ, hãy xem 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. Thực hiện 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 “Chức năng bảng tính” đang mở này và chọn công thức “Chuyển đổi”.
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 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 tôi cũng có thể chuyển vị bằng cách sử dụ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 điều này 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 sang cột và cột thành hàng.
Những điều cần ghi nhớ
- Nếu chúng tôi đang sử dụng hàm trang tính TRANSPOSE, 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