Giúp rút gọn code Load dữ liệu từ Form xuống Ô excel (1 người xem)

Liên hệ QC

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

minhtuan55

Thành viên bị đình chỉ hoạt động
Thành viên bị đình chỉ hoạt động
Tham gia
23/3/16
Bài viết
705
Được thích
52
Chào cả Nhà . Em có dùng đoạn code sau để lấy dữ liệu từ Form xuống nhưng code chạy khá chậm. Mọi người có cách nào tối giản cho Nhanh giúp mình. Mình xin chân thành cảm ơn

Mã:
Sub loadxuongform()
' Load Mã hàng từ Textbox 
Range("a77").Value = themmoncon.MH1.Value
Range("a78").Value = themmoncon.MH2.Value
Range("a79").Value = themmoncon.MH3.Value
Range("a80").Value = themmoncon.MH4.Value
Range("a81").Value = themmoncon.MH5.Value
Range("a82").Value = themmoncon.MH6.Value
Range("a83").Value = themmoncon.MH7.Value
Range("a84").Value = themmoncon.MH8.Value
Range("a85").Value = themmoncon.MH9.Value
Range("a86").Value = themmoncon.MH10.Value

' Load  Tên hang từ label
Range("b77").Value = themmoncon.TEN1
Range("b78").Value = themmoncon.TEN2
Range("b79").Value = themmoncon.TEN3
Range("b80").Value = themmoncon.TEN4
Range("b81").Value = themmoncon.TEN5
Range("b82").Value = themmoncon.TEN6
Range("b83").Value = themmoncon.TEN7
Range("b84").Value = themmoncon.TEN8
Range("b85").Value = themmoncon.TEN9
Range("b86").Value = themmoncon.TEN10

' Load Số lượng từ Textbox

Range("c77").Value = themmoncon.SL1.Value
Range("c78").Value = themmoncon.SL2.Value
Range("c79").Value = themmoncon.SL3.Value
Range("c80").Value = themmoncon.SL4.Value
Range("c81").Value = themmoncon.SL5.Value
Range("c82").Value = themmoncon.SL6.Value
Range("c83").Value = themmoncon.SL7.Value
Range("c84").Value = themmoncon.SL8.Value
Range("c85").Value = themmoncon.SL9.Value
Range("c86").Value = themmoncon.SL10.Value

End Sub
 
Chào cả Nhà . Em có dùng đoạn code sau để lấy dữ liệu từ Form xuống nhưng code chạy khá chậm. Mọi người có cách nào tối giản cho Nhanh giúp mình. Mình xin chân thành cảm ơn

Mã:
Sub loadxuongform()
' Load Mã hàng từ Textbox
Range("a77").Value = themmoncon.MH1.Value
Range("a78").Value = themmoncon.MH2.Value
Range("a79").Value = themmoncon.MH3.Value
Range("a80").Value = themmoncon.MH4.Value
Range("a81").Value = themmoncon.MH5.Value
Range("a82").Value = themmoncon.MH6.Value
Range("a83").Value = themmoncon.MH7.Value
Range("a84").Value = themmoncon.MH8.Value
Range("a85").Value = themmoncon.MH9.Value
Range("a86").Value = themmoncon.MH10.Value

' Load  Tên hang từ label
Range("b77").Value = themmoncon.TEN1
Range("b78").Value = themmoncon.TEN2
Range("b79").Value = themmoncon.TEN3
Range("b80").Value = themmoncon.TEN4
Range("b81").Value = themmoncon.TEN5
Range("b82").Value = themmoncon.TEN6
Range("b83").Value = themmoncon.TEN7
Range("b84").Value = themmoncon.TEN8
Range("b85").Value = themmoncon.TEN9
Range("b86").Value = themmoncon.TEN10

' Load Số lượng từ Textbox

Range("c77").Value = themmoncon.SL1.Value
Range("c78").Value = themmoncon.SL2.Value
Range("c79").Value = themmoncon.SL3.Value
Range("c80").Value = themmoncon.SL4.Value
Range("c81").Value = themmoncon.SL5.Value
Range("c82").Value = themmoncon.SL6.Value
Range("c83").Value = themmoncon.SL7.Value
Range("c84").Value = themmoncon.SL8.Value
Range("c85").Value = themmoncon.SL9.Value
Range("c86").Value = themmoncon.SL10.Value

End Sub
Có mấy cái này sao mà chậm được nhỉ?
Bạn có thể đưa nó vào mảng và dùng For next cho gọn
VD: ar(1 o 10, 1 to 3)
ar(1,1) = themmoncon.MH1.Value
ar(1,2) = themmoncon.TEN1
ar(1,3) = themmoncon.SL1.Value
...
để dùng cho for thì phải xét theo control
for i = 1 to 10
ar(i,1) = Controls("MH" & i).Value
ar(i,2) = Controls("TEN" & i).Value
ar(i,3) = Controls("SL" & i).Value
next

cuối cùng là Range("A77").resize(10,3) = ar
 
Upvote 0
Chào cả Nhà . Em có dùng đoạn code sau để lấy dữ liệu từ Form xuống nhưng code chạy khá chậm. Mọi người có cách nào tối giản cho Nhanh giúp mình. Mình xin chân thành cảm ơn

Mã:
Sub loadxuongform()
' Load Mã hàng từ Textbox
Range("a77").Value = themmoncon.MH1.Value
Range("a78").Value = themmoncon.MH2.Value
Range("a79").Value = themmoncon.MH3.Value
Range("a80").Value = themmoncon.MH4.Value
Range("a81").Value = themmoncon.MH5.Value
Range("a82").Value = themmoncon.MH6.Value
Range("a83").Value = themmoncon.MH7.Value
Range("a84").Value = themmoncon.MH8.Value
Range("a85").Value = themmoncon.MH9.Value
Range("a86").Value = themmoncon.MH10.Value

' Load  Tên hang từ label
Range("b77").Value = themmoncon.TEN1
Range("b78").Value = themmoncon.TEN2
Range("b79").Value = themmoncon.TEN3
Range("b80").Value = themmoncon.TEN4
Range("b81").Value = themmoncon.TEN5
Range("b82").Value = themmoncon.TEN6
Range("b83").Value = themmoncon.TEN7
Range("b84").Value = themmoncon.TEN8
Range("b85").Value = themmoncon.TEN9
Range("b86").Value = themmoncon.TEN10

' Load Số lượng từ Textbox

Range("c77").Value = themmoncon.SL1.Value
Range("c78").Value = themmoncon.SL2.Value
Range("c79").Value = themmoncon.SL3.Value
Range("c80").Value = themmoncon.SL4.Value
Range("c81").Value = themmoncon.SL5.Value
Range("c82").Value = themmoncon.SL6.Value
Range("c83").Value = themmoncon.SL7.Value
Range("c84").Value = themmoncon.SL8.Value
Range("c85").Value = themmoncon.SL9.Value
Range("c86").Value = themmoncon.SL10.Value

End Sub
Chỉ nhiêu đây code thì không thể chậm được, trừ phi file của bạn có gì đó (công thức, format, style rác....) khiến nó chậm mà thôi
 
Upvote 0
Có thể 1 trong 3 lý do sau đây:
1. thớt muốn bà con chú ý nên nhét thêm phần "chạy khá chậm", chứ mục đích chính chỉ là rút cho gọn.
2. thớt chủ quan, thấy file chạy ỳ ạch thì đổ ngay là tại code.
3. trong file có cái phần bắt sự kiện thay đổi gì đó. Code này thay đổi 30 ô thì cái sự kiện đó chạy 30 lần.
Cả 3 lý do trên không phải là lỗi của code. Có cải tiến mấy cũng chạy chậm vậy mà thôi.

Lý do 4, 5... thì chưa cần bàn tới.
 
Upvote 0
Có thể 1 trong 3 lý do sau đây:
1. thớt muốn bà con chú ý nên nhét thêm phần "chạy khá chậm", chứ mục đích chính chỉ là rút cho gọn.
2. thớt chủ quan, thấy file chạy ỳ ạch thì đổ ngay là tại code.
3. trong file có cái phần bắt sự kiện thay đổi gì đó. Code này thay đổi 30 ô thì cái sự kiện đó chạy 30 lần.
Cả 3 lý do trên không phải là lỗi của code. Có cải tiến mấy cũng chạy chậm vậy mà thôi.

Lý do 4, 5... thì chưa cần bàn tới.


Lý do 4: Code này không phải do các tác giả nối tiếng trên GPE (thí dụ Vetmini) viết => thiếu độ tin cậy => cần tìm người viết lại.
 
Upvote 0
Có thể 1 trong 3 lý do sau đây:
1. thớt muốn bà con chú ý nên nhét thêm phần "chạy khá chậm", chứ mục đích chính chỉ là rút cho gọn.
2. thớt chủ quan, thấy file chạy ỳ ạch thì đổ ngay là tại code.
3. trong file có cái phần bắt sự kiện thay đổi gì đó. Code này thay đổi 30 ô thì cái sự kiện đó chạy 30 lần.
Cả 3 lý do trên không phải là lỗi của code. Có cải tiến mấy cũng chạy chậm vậy mà thôi.

Lý do 4, 5... thì chưa cần bàn tới.

Bác trả lời nhứ Muối bỏ biển. 3 điều bác nói thì mình biết từ cách đây 3 năm rồi. mình đả thử 1 File Trắng để chạy code thấy vẫn chậm nên mới lên đây hỏi. Bác già rồi bác biết thì giúp không biết thì không cần trả lời như Vậy. Đã không giúp người ta mà còn Nói Móc.
 
Upvote 0
Lý do 5: Code cần "khó hiểu" cho người đọc, thể hiện tính "Pro" của code

Mình thật sự muốn 1 đoạn code để chạy Nhanh, Pro hay không Pro không quan tấm. Lý do mình đã Test trến 1 file Trắng mới thấy vẫn chậm nên mới hỏi
 
Upvote 0
Code này nằm trong phần mềm mà tác giả chuẩn bị triển khai online nên cần phải cải thiện tốc độ.
Mình thật sự muốn 1 đoạn code để chạy Nhanh, Pro hay không Pro không quan tấm. Lý do mình đã Test trến 1 file Trắng mới thấy vẫn chậm nên mới hỏi
Chỉ nhiêu đây code thì không thể chậm được, trừ phi file của bạn có gì đó (công thức, format, style rác....) khiến nó chậm mà thôi

Mình thật sự muốn 1 đoạn code để chạy Nhanh, Pro hay không Pro không quan tấm. Lý do mình đã Test trến 1 file Trắng mới thấy vẫn chậm nên mới hỏi
 
Upvote 0
Có mấy cái này sao mà chậm được nhỉ?
Bạn có thể đưa nó vào mảng và dùng For next cho gọn
VD: ar(1 o 10, 1 to 3)
ar(1,1) = themmoncon.MH1.Value
ar(1,2) = themmoncon.TEN1
ar(1,3) = themmoncon.SL1.Value
...
để dùng cho for thì phải xét theo control
for i = 1 to 10
ar(i,1) = Controls("MH" & i).Value
ar(i,2) = Controls("TEN" & i).Value
ar(i,3) = Controls("SL" & i).Value
next

cuối cùng là Range("A77").resize(10,3) = ar

Em chân thành cảm ơn anh
 
Upvote 0
Mình thật sự muốn 1 đoạn code để chạy Nhanh, Pro hay không Pro không quan tấm. Lý do mình đã Test trến 1 file Trắng mới thấy vẫn chậm nên mới hỏi
Vậy bạn đưa cái file trắng có code + userform ấy lên đây tôi test thử, nếu nó chậm thì tôi mới tin
 
Upvote 0
Vậy bạn đưa cái file trắng có code + userform ấy lên đây tôi test thử, nếu nó chậm thì tôi mới tin
Tôi nghĩ có thể nó chậm thật. Và có lẽ chậm hơn code ở bài #2 khoảng 0,001 giây.
Bác trả lời nhứ Muối bỏ biển. 3 điều bác nói thì mình biết từ cách đây 3 năm rồi. mình đả thử 1 File Trắng để chạy code thấy vẫn chậm nên mới lên đây hỏi. Bác già rồi bác biết thì giúp không biết thì không cần trả lời như Vậy. Đã không giúp người ta mà còn Nói Móc.
Đây là lần thứ mấy tôi phải nói lại cho bạn. Diễn đàn không hề có điều lệ giành riêng thớt cho chủ thớt.
Tôi trả lời và giải đáp thắc mắc cho các thành viên khác, không phải cho bạn.
Tôi không thể giúp cho người tự xưng đã đạt trình độ code 3 năm rồi mà viết đống code như bài chủ đề.
Theo luật diễn đàn, nếu bạn cảm thấy câu nói ngoài lề, bạn có thể báo cho ban quản trị xóa nó đi.
 
Upvote 0
Web KT

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

Back
Top Bottom