Trả về mọi mục thứ n bằng VBA trong Microsoft Excel
Trong trường hợp bạn đang thắc mắc làm thế nào để ai đó có thể tìm thấy mọi mục thứ n trong một cột. Trong bài này, chúng ta sẽ học cách trả về mọi mục thứ n từ một danh sách. Chúng tôi sẽ sử dụng mã VBA để tìm kết quả.
Câu hỏi: Tôi muốn một mã macro để trích xuất mọi giá trị thứ n từ một cột. Tôi đang cố gắng kéo các giá trị từ một trang / cột sang trang / cột khác. Tôi đã thử sử dụng nhiều hàm như OFFSET nhưng không thể tìm ra công thức có thể đưa ra kết quả.
Chúng ta hãy lấy một ví dụ về 100 giá trị trong cột A & chúng ta muốn tìm ra mỗi giá trị thứ 10 ^ trong cột B Các giá trị mẫu bắt đầu từ ô A1 bằng 1 đến ô A100 bằng 100; sau đây là ảnh chụp nhanh dữ liệu trong cột A:
Để có kết quả, chúng ta cần làm theo các bước sau để khởi chạy trình soạn thảo VB Nhấp vào tab Nhà phát triển Từ nhóm Mã, chọn Visual Basic
-
Sao chép đoạn mã dưới đây trong mô-đun chuẩn
Function INDEXN(InputRange As Range, N As Integer) As Variant ' returns every N-th item from InputRange' --- Comment ' select the desired target range for the function and' --- Comment ' enter as an array function with Ctrl+Shift+Enter.' --- Comment Dim ItemList() As Variant, c As Range, i As Long, iCount As Long i = 0 iCount = 0 ReDim ItemList(1 To InputRange.Cells.Count \ N) For Each c In InputRange i = i + 1 If i Mod N = 0 Then iCount = iCount + 1 On Error Resume Next ItemList(iCount) = c.Value On Error GoTo 0 End If Next c INDEXN = ItemList If InputRange.Rows.Count >= InputRange.Columns.Count Then INDEXN = Application.WorksheetFunction.Transpose(INDEXN) End If Erase ItemList End Function
Để nhận mọi mục thứ n trong phạm vi B1: B10, công thức là \ {= INDEXN ($ A $ 1: $ A $ 100, 10)} Lưu ý: đây là công thức mảng; do đó, phải nhấn tổ hợp phím Ctrl + Shift + End.
Để nhận mọi giá trị thứ 7 ^ từ phạm vi A1: A100; chúng ta sẽ thay đổi đối số cuối cùng từ 10 thành 7 & công thức sẽ là \ {= INDEXN ($ A $ 1: $ A $ 100, 7)}
Bằng cách này, chúng ta có thể trả lại mọi mục thứ n từ một trang tính sang trang tính chính.
Công thức trong trang tính khác sẽ chứa tham chiếu trang tính \ {= INDEXN (Sheet1! $ A $ 1: $ A $ 100, 10)}
Kết luận: Với sự trợ giúp của Hàm do người dùng xác định ở trên, chúng ta có thể linh hoạt để tìm ra từng mục thứ n từ trang tính này sang trang tính khác.
Nếu bạn thích blog của chúng tôi, hãy chia sẻ nó với bạn bè của bạn trên Facebook. Và bạn cũng có thể theo dõi chúng tôi trên Twitter và Facebook. Chúng tôi rất muốn nghe ý kiến của bạn, hãy cho chúng tôi biết cách chúng tôi có thể cải thiện, bổ sung hoặc đổi mới công việc của mình và làm cho nó tốt hơn cho bạn. Viết thư cho chúng tôi tại [email protected]