Trả về 1 cột bất kỳ trong mảng 2 chiều

Liên hệ QC

anhtuan2939

Thành viên hoạt động
Tham gia
5/7/16
Bài viết
165
Được thích
130
Chào cả nhà, sau khi tính toán thì em có 1 mảng 2 chiều Arr(1 to 10, 1 to 5). Bây giờ em muốn lấy giá trị của 1 cột trong mảng này thì viết code như thế nào ạ? Em cảm ơn cả nhà.
Em có thử code sau để lấy cột thứ 3 trong mảng mà không được.
Mã:
Sheet1.range("A1:A10").value = Arr(,3)
 
Giải pháp
Hàm Index.

1665034251081.png

a: mảng 3 dòng, 2 cột
b: mảng 3 dòng, 1 cột

a và b đều là mảng 2 chiều.
Thực ra hàm Index trả về mảng 1 chiều. Nhưng qua VBA thì thành mảng 2 chiều.
Chào cả nhà, sau khi tính toán thì em có 1 mảng 2 chiều Arr(1 to 10, 1 to 5). Bây giờ em muốn lấy giá trị của 1 cột trong mảng này thì viết code như thế nào ạ? Em cảm ơn cả nhà.
Em có thử code sau để lấy cột thứ 3 trong mảng mà không được.
Mã:
Sheet1.range("A1:A10").value = Arr(,3)
Ghi sang mảng mới thôi bạn, hoặc nếu có thể, ban đầu ghi cột cần ghi xuống sheet đó vào cột đầu tiên trong mảng
 
Upvote 0
Hàm Index.

1665034251081.png

a: mảng 3 dòng, 2 cột
b: mảng 3 dòng, 1 cột

a và b đều là mảng 2 chiều.
Thực ra hàm Index trả về mảng 1 chiều. Nhưng qua VBA thì thành mảng 2 chiều.
 
Upvote 0
Giải pháp
Hàm Index.

View attachment 281773

a: mảng 3 dòng, 2 cột
b: mảng 3 dòng, 1 cột

a và b đều là mảng 2 chiều.
Thực ra hàm Index trả về mảng 1 chiều. Nhưng qua VBA thì thành mảng 2 chiều.
Cảm ơn anh đã hướng dẫn. Nhưng em vẫn chưa hiểu được cách để lấy được cột cần thiết như đề bài ở trên. Anh có thể hướng dẫn kỹ hơn cho em được không ạ?
 
Upvote 0
Chính xác. Trong vba dùng application.index(mang2chieu,, chi-so-cot) là lấy được nguyên 1 'cột' chỉ định của mảng 2 chiều. Cái này mình nhớ mang máng mình có bài viết rồi.
 
Upvote 0
Trong vba dùng application.index(mang2chieu,, chi-so-cot) là lấy được nguyên 1 'cột' chỉ định của mảng 2 chiều
Trước em có biết nhưng không khi nào dùng nên quên, vì ít khi dùng hàm worksheet vào code
Nhưng em vẫn chưa hiểu được cách để lấy được cột cần thiết như đề bài ở trên
Thử code sau:
Mã:
Option Explicit

Sub ABC()
Dim a(), b()
a = Range("A2:E12").Value 'Vùng du lieu
b = Application.Index(a, , 3)
Range("G2:G12").Value = b 'Vùng ket qua
End Sub
 
Upvote 0
Chính xác. Trong vba dùng application.index(mang2chieu,, chi-so-cot) là lấy được nguyên 1 'cột' chỉ định của mảng 2 chiều. Cái này mình nhớ mang máng mình có bài viết rồi.
Cảm ơn anh đã hướng dẫn. Nhờ thêm code mẫu của bạn @Nhattanktnn thì em đã hiểu được nội dung của hàm Index trong VBA của Anh và anh VietMini
Bài đã được tự động gộp:

Trước em có biết nhưng không khi nào dùng nên quên, vì ít khi dùng hàm worksheet vào code

Thử code sau:
Mã:
Option Explicit

Sub ABC()
Dim a(), b()
a = Range("A2:E12").Value 'Vùng du lieu
b = Application.Index(a, , 3)
Range("G2:G12").Value = b 'Vùng ket qua
End Sub
Cảm ơn bạn. code đã cho ra kết quả chính xác.
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom