Lỗi Overflow khi chạy Userform - Nhờ giúp đỡ !!!

Liên hệ QC
Tôi tuân thủ nội quy khi đăng bài

phiphi2022

Thành viên mới
Tham gia
3/5/22
Bài viết
23
Được thích
4
Chào các anh chị !

Em đang có vấn đề cần sự giúp đỡ ạ.
Do em không rành về code, em đã chép code từ diễn đàn này để chạy userform.
Giờ đang mắc lỗi "Run-time error '6' Overflow" khi em thay đổi giá trị số Cột truy xuất trong listbox ạ
Cụ thể là em thay đổi từ A1:H thành A1:K

Code thế này sẽ chạy rất mượt :
Private Sub UserForm_Initialize()

'Nap cac doi tuong can thiet de khoi dong useform

Set Dic = CreateObject("Scripting.Dictionary")

sArray = Sheet6.Range("A1:H" & Sheet6.[A1000000].End(xlUp).Row).Value

LBDMHH.List() = sArray
'CBDMHH.List = Sheet3.[A1:A5].Value
CBDMHH.Value = "ALL"

End Sub

Nhưng khi em thay đổi "sArray = Sheet6.Range("A1:H" & Sheet6.[A1000000].End(xlUp).Row).Value" thành "sArray = Sheet6.Range("A1:K" & Sheet6.[A1000000].End(xlUp).Row).Value" thì sẽ báo lỗi trên ạ.

Do nhu cầu cần truy xuất thêm đến cột K nên bài toán đặt ra là em phải thay đổi giá trị trên.
Nhờ các anh chị hướng dẫn giúp nem với ạ !

Em cảm ơn nhiều ạ !
 
Cách để lọc lấy dữ liệu cần thiết để đưa lên form em không biết ạ, em chỉ là tay ngang ( copy ngang và sử dụng ngang ...) Anh có thể giúp em sửa code đó sang dạng lọc được không ạ ( Dạ nếu anh có thời gian ạ !)
Tôi còn chưa biết bạn cần gì thì tôi biết lọc kiểu gì.
 
Upvote 0
Bài anh em nhấn cảm ơn, thích mấy lần mà cứ báo lỗi hoài, chả hiểu sao nữa.

Cảm ơn anh nhiều nhé !
Tôi còn chưa biết bạn cần gì thì tôi biết lọc kiểu gì.
dạ file trên em cần lấy dữ liệu ở các cột : 1,2,3,4,6,7,8,10,11 thôi ạ, còn 5,9 thì không cần ạ
Nhờ anh chỉnh code giúp em ạ!
 
Upvote 0
Upvote 0
Lọc, nghĩa là lọc ít dòng lại, chứ không phải ít cột đi.
Và câu hỏi là: List dài thế để làm gì?
Dạ, số dòng đó là lịch sử mua hàng và giao dịch, cần tập trung theo thời gian ( có thể là cơ số năm ) nên mới để dồn gần 1 triệu dòng(trong tương lai).
Hay là do em không hiểu ý anh về câu hỏi nhỉ ??
Hay anh có cách nào khác để tối ưu hơn không ạ?
 
Upvote 0
Chủ bài đăng: Bạn đưa hết 11 cột & t00 ngàn dòng (hay sẽ 1 M dòng) ấy lên ListBox; rồi sẽ làm gì với nó?
Đừng nói là xài con trượt để tìm ra những dòng DỮ LIỆU cần thiết đó nha!
 
Upvote 0
Dạ, số dòng đó là lịch sử mua hàng và giao dịch, cần tập trung theo thời gian ( có thể là cơ số năm ) nên mới để dồn gần 1 triệu dòng(trong tương lai).
Hay là do em không hiểu ý anh về câu hỏi nhỉ ??
Hay anh có cách nào khác để tối ưu hơn không ạ?
"Để làm gì" tức là sẽ làm gì trên userform. Chứ nếu cần "tập trung theo thời gian nhiều năm" thì để nguyên trên sheet. Đã đến bài 26 rồi mà muốn giúp cũng khó!
 
Upvote 0
Chủ bài đăng: Bạn đưa hết 11 cột & t00 ngàn dòng (hay sẽ 1 M dòng) ấy lên ListBox; rồi sẽ làm gì với nó?
Đừng nói là xài con trượt để tìm ra những dòng DỮ LIỆU cần thiết đó nha!

"Để làm gì" tức là sẽ làm gì trên userform. Chứ nếu cần "tập trung theo thời gian nhiều năm" thì để nguyên trên sheet. Đã đến bài 26 rồi mà muốn giúp cũng khó!
À, giờ thì em đã hiểu ý câu hỏi
Đưa lên để sort kiểm tra khách hàng theo số điện thoại ạ
Tại cột B double click vào số điện thoại sẽ hiển thị danh sách các đơn hàng của vị khách đó trong trang tính ạ !
 
Upvote 0
Trời.
Doanh nghiệp có hàng 100 ngàn khách hàng, và dự tính phát triển đến 1 triệu.
Dùng Excel để quản lý đơn hàng?
 
Upvote 0
Trời.
Doanh nghiệp có hàng 100 ngàn khách hàng, và dự tính phát triển đến 1 triệu.
Dùng Excel để quản lý đơn hàng?
Hiện tại chỉ có 4,444 khách hàng thôi, số đơn hàng mới nhiều. Và bao gồm từ tháng 11/ 2022 đến nay.
À, giờ thì em đã hiểu ý câu hỏi
Đưa lên để sort kiểm tra khách hàng theo số điện thoại ạ
Thế thì thà dùng pivot table ngay trên sheet còn nhanh hơn. Còn nếu cứ muốn userform cho hoành tráng thì:
- đưa vào mảng bằng value2 (mảng 1)
- tạo 1 list danh sách khách hàng kèm số đt trên sheet (mảng 2), gắn vào listbox 1
- 1 textbox tìm kiếm (gõ số đt vào). Căn cứ vào số đt này, lấy được mã khách hàng trong mảng 2, gắn vào listbox1
- căn cứ vào mã khách hàng, lọc dữ liệu mảng 1 với chỉ 1 khách hàng đó, với bao nhiêu thông tin tùy thích, gán vào listbox 2.
 
Lần chỉnh sửa cuối:
Upvote 0
Upvote 0
Em gửi file đính kèm ạ !
Nhờ các anh chị xem giúp ạ !
Mình cũng khá ngạc nhiên bỡi CSDL hàng 100 ngàn người mà chưa có mã duy nhất;
& bạn chủ bài đăng cũng không thể xài số ĐT làm mã duy nhất cho CSDL
Những mong là CSDL này chỉ là giả lập!
 
Upvote 0
Nếu gặp dữ liệu nhiều thì sẽ dùng phần mềm hay ứng dụng gì thay thế excel thì được bác nhỉ?
Excel công thức 500 dòng là em thấy nó chậm rồi.
Mướn người viết Form chạy trên Access.
Trả tiền cao hơn thì người ta viết cho WinForm hay WebForm, dùng CSDL mySQL hoặc SQL Server.
Xử lý hàng trăm ngàn đơn hàng một năm, gần 300 đơn một ngày thì đâu phải chuyện nhỏ.
 
Upvote 0
Hiện tại chỉ có 4,444 khách hàng thôi, số đơn hàng mới nhiều. Và bao gồm từ tháng 11/ 2022 đến nay.

Thế thì thà dùng pivot table ngay trên sheet còn nhanh hơn. Còn nếu cứ muốn userform cho hoành tráng thì:
- đưa vào mảng bằng value2 (mảng 1)
- tạo 1 list danh sách khách hàng kèm số đt trên sheet (mảng 2), gắn vào listbox 1
- 1 textbox tìm kiếm (gõ số đt vào). Căn cứ vào số đt này, lấy được mã khách hàng trong mảng 2, gắn vào listbox1
- căn cứ vào mã khách hàng, lọc dữ liệu mảng 1 với chỉ 1 khách hàng đó, với bao nhiêu thông tin tùy thích, gán vào listbox 2.
Có thể tạo 3 mảng thay vì 1, do có cùng số dòng nên cùng 1 vòng lặp theo dòng là truy xuất được cả 3.
Mướn người viết Form chạy trên Access.
Trả tiền cao hơn thì người ta viết cho WinForm hay WebForm, dùng CSDL mySQL hoặc SQL Server.
Xử lý hàng trăm ngàn đơn hàng một năm, gần 300 đơn một ngày thì đâu phải chuyện nhỏ.
Mình cũng khá ngạc nhiên bỡi CSDL hàng 100 ngàn người mà chưa có mã duy nhất;
& bạn chủ bài đăng cũng không thể xài số ĐT làm mã duy nhất cho CSDL
Những mong là CSDL này chỉ là giả lập!
Dạ file excel là thực tế đấy ạ, vì lý do kiến thức có hạn và tầm hiểu biết nông cạn nên hiện tại em vẫn phải vật lộn với file excel này ạ

Cảm ơn các anh chị đã giành thời gian giúp đỡ ạ !
 
Upvote 0
Web KT

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

Back
Top Bottom