DarkWanderer
Thành viên hoạt động
- Tham gia
- 16/12/19
- Bài viết
- 104
- Được thích
- 76
- Giới tính
- Nam
Chào anh chị em trên Diễn đàn,
Mình là nhân viên kho nên tự làm 1 form nhập xuất kho để tự theo dõi vật tư trong kho, ở đây có 1 số vấn đề trong nhập liệu nhiều dòng mà mình tự mò giải quyết như sau
1. Làm sao để quản lý số lượng dòng trên Form
- Mình tạo 1 textbox tên LineCount để lưu trữ số lượng dòng
2. Làm thế nào để xác định được hiện thêm mới dòng nào, xóa dòng nào
- Mình đặt tên các Control như: Column001_Row002, Column006_Row012
- Mình tạo 1 class module để lưu Control.name vào Textbox1, muốn biết số dòng đang chọn là bao nhiêu thì là Right(Textbox1,3)
- Khi thêm dòng thì thì + giá trị cho Textbox1, xóa dòng thì - giá trị Textbox 1
- Khi xóa 1 dòng thì mình dòng lệnh .remove(Textbox1.value) (.remove chỉ áp dụng cho các Control tạo ra bằng code)
3. Làm sao để đưa dữ liệu từ Form xuống Sheet, VD như trong Video mình đã đưa giá trị của 2400 Control (800 x 3) xuống Sheet
- Theo cách bình thường
Sheet1.range("A"&lastrow).value = control1.value
Sheet1.range("B"&lastrow).value = control2.value
Cách này máy tính chạy rất chậm
- Vì vậy mình đã tạo 1 mảng động rồi đưa tất cả Control.value vào đó (Kích thước mảng bằng (LineCount.value,4))
- Sau đó mình dùng code Insert Shift row thêm dòng vào bảng (Số dòng mới thêm bằng LineCount.value), như vậy mình không cần phải kẻ sẵn bảng nhiều, dữ liệu bao nhiêu thì code tự kẻ tiếp, như vậy file đỡ nặng
- Đưa mảng xuống Sheet
Mời mọi người tham khảo, mình cũng không học bài bản nên đụng cái nào mới mò thôi, hiểu biết có thể không đúng
Mình là nhân viên kho nên tự làm 1 form nhập xuất kho để tự theo dõi vật tư trong kho, ở đây có 1 số vấn đề trong nhập liệu nhiều dòng mà mình tự mò giải quyết như sau
1. Làm sao để quản lý số lượng dòng trên Form
- Mình tạo 1 textbox tên LineCount để lưu trữ số lượng dòng
2. Làm thế nào để xác định được hiện thêm mới dòng nào, xóa dòng nào
- Mình đặt tên các Control như: Column001_Row002, Column006_Row012
- Mình tạo 1 class module để lưu Control.name vào Textbox1, muốn biết số dòng đang chọn là bao nhiêu thì là Right(Textbox1,3)
- Khi thêm dòng thì thì + giá trị cho Textbox1, xóa dòng thì - giá trị Textbox 1
- Khi xóa 1 dòng thì mình dòng lệnh .remove(Textbox1.value) (.remove chỉ áp dụng cho các Control tạo ra bằng code)
3. Làm sao để đưa dữ liệu từ Form xuống Sheet, VD như trong Video mình đã đưa giá trị của 2400 Control (800 x 3) xuống Sheet
- Theo cách bình thường
Sheet1.range("A"&lastrow).value = control1.value
Sheet1.range("B"&lastrow).value = control2.value
Cách này máy tính chạy rất chậm
- Vì vậy mình đã tạo 1 mảng động rồi đưa tất cả Control.value vào đó (Kích thước mảng bằng (LineCount.value,4))
- Sau đó mình dùng code Insert Shift row thêm dòng vào bảng (Số dòng mới thêm bằng LineCount.value), như vậy mình không cần phải kẻ sẵn bảng nhiều, dữ liệu bao nhiêu thì code tự kẻ tiếp, như vậy file đỡ nặng
- Đưa mảng xuống Sheet
Mời mọi người tham khảo, mình cũng không học bài bản nên đụng cái nào mới mò thôi, hiểu biết có thể không đúng
Lần chỉnh sửa cuối: