- Tham gia
- 8/6/06
- Bài viết
- 14,568
- Được thích
- 22,875
- Nghề nghiệp
- U80
Đưa bài lên dùm một bạn: (Verona đã hỏi mình trực tiếp)
Mình đang viết một đoạn chương trình để phục vụ cho công việc của mình. Nó cũng không phức tạp lắm nhưng số phép tính rất nhiều (trên 14.000 số) nên việc chạy trên excel rất chậm. Khi mình viết bằng macro thì đoạn này lại phải lặp đi lặp lại rất nhiều. Bạn có cách nào giúp mình được ko. Vì khi mình gán đoạn này ra một sub khác thì lúc "call" nó lại ko chạy ra được như kết quả mình cần làm. So di (?)) trình bày hơi nhiều. Mình chỉ biết dùng các lệnh đơn giản (nên trông rất thủ công và nông dân )nhưng vì điều kiện ràng buộc rất nhiều, mà mỗi lần ràng buộc lại phải sử dụng lại những phép tính đó... bạn có cách nào giúp mình ko?
cụ tỉ 1 đoạn nó thế này cảm ơn bạn. Sodi nếu làm fiền ^^
To Verona: MÌnh sẽ gởi bạn địa chỉ mail, bạn gởi file cho mình, mình sẽ đưa lên tại đây;
Theo dõi & chờ trả lời, nha
[Verona]:
Số bài gởi: 0
Số bài gởi: 0
Mình đang viết một đoạn chương trình để phục vụ cho công việc của mình. Nó cũng không phức tạp lắm nhưng số phép tính rất nhiều (trên 14.000 số) nên việc chạy trên excel rất chậm. Khi mình viết bằng macro thì đoạn này lại phải lặp đi lặp lại rất nhiều. Bạn có cách nào giúp mình được ko. Vì khi mình gán đoạn này ra một sub khác thì lúc "call" nó lại ko chạy ra được như kết quả mình cần làm. So di (?)) trình bày hơi nhiều. Mình chỉ biết dùng các lệnh đơn giản (nên trông rất thủ công và nông dân )nhưng vì điều kiện ràng buộc rất nhiều, mà mỗi lần ràng buộc lại phải sử dụng lại những phép tính đó... bạn có cách nào giúp mình ko?
cụ tỉ 1 đoạn nó thế này cảm ơn bạn. Sodi nếu làm fiền ^^
To Verona: MÌnh sẽ gởi bạn địa chỉ mail, bạn gởi file cho mình, mình sẽ đưa lên tại đây;
Theo dõi & chờ trả lời, nha
--------------------------------------
Qdt = Ndb * 1000 / (hieusuat * Hthuc)
PHP:
Do While Nfat < Ndb
W_c = W_d + (Qthuc - Qdt) * 24 * 3600 / 10 ^ 6
Zho_d = Noisuy(W_d, Who, Zho, NumHo)
Zho_c = Noisuy(W_c, Who, Zho, NumHo)
Zho_tb = (Zho_d + Zho_c) / 2
Zhaluu = Noisuy(Qdt, Qhl, Zhl, NumHaluu)
Htt = Noisuy(Qdt, Qtbin, Hw, NumHw)
Hthuc = Zho_tb - Zhaluu - Htt
hieusuat = Noisuy(Hthuc, H_k, Heso, NumK)
Nfat = hieusuat * Qdt * Hthuc / 1000
Qdt = Ndb * 1000 / (hieusuat * Hthuc)
Loop
'----- Nfat = Ndb nhung Who < MNC'
If W_c < Wc Then
If W_d > W_c Then
W_c = Wc
Qdt = ((W_d - W_c) / 0.0864) + Qthuc
Zho_d = Noisuy(W_d, Who, Zho, NumHo)
Zho_c = Noisuy(W_c, Who, Zho, NumHo)
Zho_tb = (Zho_d + Zho_c) / 2
Zhaluu = Noisuy(Qdt, Qhl, Zhl, NumHaluu)
Htt = Noisuy(Qdt, Qtbin, Hw, NumHw)
Hthuc = Zho_tb - Zhaluu - Htt
hieusuat = Noisuy(Hthuc, H_k, Heso, NumK)
Nfat = hieusuat * Qdt * Hthuc / 1000
Else
Qdt = Qthuc
End If
phahoai = phahoai + 1
End If
Else '<<==???'
If W_d < Wtb Then
Qdt = Ndb * 1000 / (hieusuat * Hthuc)
W_c = W_d + (Qthuc - Qdt) * 24 * 3600 / 10 ^ 6
Zho_d = Noisuy(W_d, Who, Zho, NumHo)
Zho_c = Noisuy(W_c, Who, Zho, NumHo)
Zho_tb = (Zho_d + Zho_c) / 2
Zhaluu = Noisuy(Qdt, Qhl, Zhl, NumHaluu)
Htt = Noisuy(Qdt, Qtbin, Hw, NumHw)
Hthuc = Zho_tb - Zhaluu - Htt
hieusuat = Noisuy(Hthuc, H_k, Heso, NumK)
Nfat = hieusuat * Qdt * Hthuc / 1000
Qdt = Ndb * 1000 / (hieusuat * Hthuc)
If W_c > Wtb Then
W_c = Wtb
Qdt = Qthuc - ((W_c - W_d) / 0.0864)
Zho_d = Noisuy(W_d, Who, Zho, NumHo)
Zho_c = Noisuy(W_c, Who, Zho, NumHo)
Zho_tb = (Zho_d + Zho_c) / 2
Zhaluu = Noisuy(Qdt, Qhl, Zhl, NumHaluu)
Htt = Noisuy(Qdt, Qtbin, Hw, NumHw)
Hthuc = Zho_tb - Zhaluu - Htt
hieusuat = Noisuy(Hthuc, H_k, Heso, NumK)
Nfat = hieusuat * Qdt * Hthuc / 1000
End If
End If
End If '<<==???'
ElseIf Qthuc > Qmax Then '<<==???'
Qdt = Qmax
Nfat = Nlm
W_c = Wtb
Zho_d = Noisuy(W_d, Who, Zho, NumHo)
Zho_c = Noisuy(W_c, Who, Zho, NumHo)
Zho_tb = (Zho_d + Zho_c) / 2
Zhaluu = Noisuy(Qdt, Qhl, Zhl, NumHaluu)
Htt = Noisuy(Qdt, Qtbin, Hw, NumHw)
Hthuc = Zho_tb - Zhaluu - Htt
hieusuat = Noisuy(Hthuc, H_k, Heso, NumK)
Qxa = Qthuc - Qdt
Lần chỉnh sửa cuối: