nguyenluc911
Thành viên mới
- Tham gia
- 15/9/11
- Bài viết
- 6
- Được thích
- 0
File đính kèm
Lần chỉnh sửa cuối:
Nên sửa lại tiêu đề thành: "Giúp sửa code vba xóa dòng theo điều kiện".Đây là một đoạn mã VBA trong Microsoft Excel, được sử dụng để tạo UserForm hiển thị dữ liệu từ bảng "TEMP" trong Excel.
Mình muốn khi click vào nút xóa dòng nào thì sẽ xóa dòng tương ứng trong Sheet "TEMP" và load lại Userform
View attachment 287480
Mình nghĩ nên đưa dữ liệu vào listbox, ở chế độ chọn multi (chọn một hoặc nhiều dòng)Đây là một đoạn mã VBA trong Microsoft Excel, được sử dụng để tạo UserForm hiển thị dữ liệu từ bảng "TEMP" trong Excel.
Mình muốn khi click vào nút xóa dòng nào thì sẽ xóa dòng tương ứng trong Sheet "TEMP" và load lại Userform
View attachment 287480
Cảm ơn bạn đã góp ý! Mình muốn xóa xong nó sẽ dồn dòng lên trong sheet.Mình nghĩ nên đưa dữ liệu vào listbox, ở chế độ chọn multi (chọn một hoặc nhiều dòng)
Chỉ tạo 1 nút xóa dòng duy nhất. Khi bấm nút thì các dòng được chọn sẽ xóa và cập nhật lại dữ liệu sau khi xóa. Bạn không nói rõ là xóa dữ liệu đó và để trống dòng, hay xóa dồn dòng lên, nếu xóa dồn lên mà sau đó muốn xóa tiếp, thì dòng tính theo stt dòng trên sheet, hay tính theo chữ "Dòng 1, 2.." như bạn đề cập. Vì sau khi xóa mà xóa tiếp thì stt dữ liệu bị đứt quãng
Bạn nên đọc kỹ câu hỏi và trả lời chi tiết. Mình có nói:Cảm ơn bạn đã góp ý! Mình muốn xóa xong nó sẽ dồn dòng lên trong sheet.
nếu xóa dồn lên mà sau đó muốn xóa tiếp, thì dòng tính theo stt dòng trên sheet, hay tính theo chữ "Dòng 1, 2.." như bạn đề cập
tính theo stt dòng trên sheet, hay tính theo chữ "Dòng 1, 2.." không quan trọng vì đây chỉ là sheet tạm để load dữ liệu lên form thôi ạ!Bạn nên đọc kỹ câu hỏi và trả lời chi tiết. Mình có nói:
Ý đồ bạn như thế này phải không?tính theo stt dòng trên sheet, hay tính theo chữ "Dòng 1, 2.." không quan trọng vì đây chỉ là sheet tạm để load dữ liệu lên form thôi ạ!
Cứ xóa dòng và dồn lên là được ạ!
Ý mình là Vẫn để form cũ, chỉ cần viết một class xóa dòng tương ứng trong sheet mỗi khi click vào nút xóa dòng trên form là được rồi.Ý đồ bạn như thế này phải không?
Tôi thắc mắc nếu dữ liệu 100 dòng thì bạn xử lý giao diện như thế nào trên Userform theo cách bạn đang làm?Ý mình là Vẫn để form cũ, chỉ cần viết một class xóa dòng tương ứng trong sheet mỗi khi click vào nút xóa dòng trên form là được rồi.
đây chỉ là form hóa đơn bán hàng thôi, chỉ từ 10-15 dòng làm hết rồi bạn ạ!Tôi thắc mắc nếu dữ liệu 100 dòng thì bạn xử lý giao diện như thế nào trên Userform theo cách bạn đang làm?
Đúng ra là bạn nên đưa dữ kiện này ban đầu để các bạn hỗ trợ có định hướng thiết kế cho phù hợp, đỡ mất thời gian, công code.đây chỉ là form hóa đơn bán hàng thôi, chỉ từ 10-15 dòng làm hết rồi bạn ạ!
Đây là một đoạn mã VBA trong Microsoft Excel, được sử dụng để tạo UserForm hiển thị dữ liệu từ bảng "TEMP" trong Excel.
Mình muốn khi click vào nút xóa dòng nào thì sẽ xóa dòng tương ứng trong Sheet "TEMP" và load lại Userform
Cảm ơn bạn rất nhiều. Đúng ý mình rồi đấyHôm nay rảnh xem lại bài này của bạn thì thấy với việc tạo hàng loạt textbox, button giống nhau như vậy, tốt nhất là bạn viết cái Class cho nó để cho còn có thể tái sử dụng code, tạo cho các các Form khác.
Dưới đây là file demo đơn giản dùng Class, chưa bẫy lỗi, tính tới nhiều trường hợp khác có thể phát sinh nhé. Bạn tự ngâm cứu và thêm các code cần thiết theo nhu cầu.
Sẳn qua bài này mình mới thấy là trong VBA không dùng được Class lồng trong Class hay do mình làm sai hướng. Không biết bác nào có ví dụ đơn giản code gọi một Class khác trong một Class thì chia sẻ tham khảo nhe. Cảm ơn.
....
Sẳn qua bài này mình mới thấy là trong VBA không dùng được Class lồng trong Class hay do mình làm sai hướng. Không biết bác nào có ví dụ đơn giản code gọi một Class khác trong một Class thì chia sẻ tham khảo nhe. Cảm ơn.
VBA class chỉ không có khái niệm thừa kế,
Còn gọi 1 class từ class khác, thì cứ khai báo theo đối tượng (instance) cho class muốn gọi trong class gọi, và thực thi là được
Theo tôi nhận thấy thì thớt muốn dùng một cái mà trong Dot Net WinForm gọi là DataGridview, WebForm gọi là Gridview.... tốt nhất là bạn viết cái Class cho nó để cho còn có thể tái sử dụng code, tạo cho các các Form khác.
...
Nếu dùng được DataGridview lên Userform của Excel thì tốt quá còn gì anh, chuyên trị cho hiển thị CSDL.Theo tôi nhận thấy thì thớt muốn dùng một cái mà trong Dot Net WinForm gọi là DataGridview, WebForm gọi là Gridview.
Nếu muốn dùng Class thì có lẽ bạn nên lục tài liệu Winform hoặc MVC để tìn hiểu cách người ta thiết kế giao diện (bề ngoài) vfa cấu trúc (bên trong) của control nàym