Lỗi Chiều của mảng (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

hsm.ksxd

Thành viên chính thức
Tham gia
24/8/17
Bài viết
77
Được thích
5
Giới tính
Nam
Em có code để nhập dữ liệu của mảng 3 chiều vào Listbox trong userform như sau:
Mã:
Option Base 1
Private Sub UserForm_Initialize()
    Dim arr(5, 5, 5)
    For i = 1 To 5
        arr(i, 1) = i
        arr(i, 2) = i + 10
        arr(i, 3) = i + 20
    Next
        ListBox1.List = arr()
End Sub
Nhưng khi chạy lại báo lỗi Wrong number of dimensions.
Nhưng nếu em nhập mảng 2 chiều vào thì lại không bị lỗi.
Mã:
Option Base 1
Private Sub UserForm_Initialize()
    Dim arr(5, 5)
    For i = 1 To 5
        arr(i, 1) = i
        arr(i, 2) = i + 10
    Next
        ListBox1.List = arr()
End Sub
Các bác xem giúp em với ạ
 

File đính kèm

  • Loi.jpg
    Loi.jpg
    170.1 KB · Đọc: 2
  • Khong loi.jpg
    Khong loi.jpg
    185.1 KB · Đọc: 2
Em có code để nhập dữ liệu của mảng 3 chiều vào Listbox trong userform như sau:
Mã:
Option Base 1
Private Sub UserForm_Initialize()
    Dim arr(5, 5, 5)
    For i = 1 To 5
        arr(i, 1) = i
        arr(i, 2) = i + 10
        arr(i, 3) = i + 20
    Next
        ListBox1.List = arr()
End Sub
Nhưng khi chạy lại báo lỗi Wrong number of dimensions.
Nhưng nếu em nhập mảng 2 chiều vào thì lại không bị lỗi.
Mã:
Option Base 1
Private Sub UserForm_Initialize()
    Dim arr(5, 5)
    For i = 1 To 5
        arr(i, 1) = i
        arr(i, 2) = i + 10
    Next
        ListBox1.List = arr()
End Sub
Các bác xem giúp em với ạ
Không lỗi thì cứ dùng thôi. Mảng 3 chiều đâu có nạp vào listbox được.
Lỗi bạn gặp là mảng 3 chiều nhưng khi trỏ đến phần tử chỉ điền chỉ số của 2 chiều, 3 chiều thì phải có 3 chỉ số nó mới xác định được vị trí phần tử chứ.
 
Upvote 0
Không lỗi thì cứ dùng thôi. Mảng 3 chiều đâu có nạp vào listbox được.
Lỗi bạn gặp là mảng 3 chiều nhưng khi trỏ đến phần tử chỉ điền chỉ số của 2 chiều, 3 chiều thì phải có 3 chỉ số nó mới xác định được vị trí phần tử chứ.
Dữ liệu Listbox của em có 3 cột ạ. Ngoài việc lấy dữ liệu từ sheet , có cách nào nạp dữ liệu cho Listbox thông qua mảng 3 chiều không bác?
 
Upvote 0
Dữ liệu Listbox của em có 3 cột ạ. Ngoài việc lấy dữ liệu từ sheet , có cách nào nạp dữ liệu cho Listbox thông qua mảng 3 chiều không bác?
Bạn nên đọc kiến thức cơ bản về mảng rồi hãy làm gì làm.
3 cột đâu phải là 3 chiều.
PHP:
Private Sub UserForm_Initialize()
    Dim arr(1 to 5, 1 to 3)
    For i = 1 To 5
        arr(i, 1) = i
        arr(i, 2) = i + 10
        arr(i, 3) = i + 20
    Next
        ListBox1.List = arr()
End Sub
 
Upvote 0
Bạn nên đọc kiến thức cơ bản về mảng rồi hãy làm gì làm.
3 cột đâu phải là 3 chiều.
PHP:
Private Sub UserForm_Initialize()
    Dim arr(1 to 5, 1 to 3)
    For i = 1 To 5
        arr(i, 1) = i
        arr(i, 2) = i + 10
        arr(i, 3) = i + 20
    Next
        ListBox1.List = arr()
End Sub
Dạ cảm ơn bác nhiều ạ. Đúng là em còn gà mờ về VBA lắm
 
Upvote 0
Dữ liệu Listbox của em có 3 cột ạ. Ngoài việc lấy dữ liệu từ sheet , có cách nào nạp dữ liệu cho Listbox thông qua mảng 3 chiều không bác?
3 chiều nghĩa là 3D đấy bạn! Trong khi listbox cho dù là 1000 cột thì nó vẫn là mặt phẳng, tức 2D (2 chiều) mà thôi
 
Upvote 0
3 chiều, 2 tối, 1 sáng

Nếu dùng kỹ thuật DrillDown thì mấy chiều cũng được.
Cái loại DrillDown này tôi thấy ở diễn đàn này hỏi hoài: chọn một cái, nó xổ xuống một lít liên hệ, chọn cái nữa, nó lại xổ xuống cái kế.
 
Upvote 0
3 chiều nghĩa là 3D đấy bạn! Trong khi listbox cho dù là 1000 cột thì nó vẫn là mặt phẳng, tức 2D (2 chiều) mà thôi
3 chiều, 2 tối, 1 sáng

Nếu dùng kỹ thuật DrillDown thì mấy chiều cũng được.
Cái loại DrillDown này tôi thấy ở diễn đàn này hỏi hoài: chọn một cái, nó xổ xuống một lít liên hệ, chọn cái nữa, nó lại xổ xuống cái kế.
Cảm ơn 2 tiền bối đã giúp em ạ
 
Upvote 0
Web KT

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

Back
Top Bottom