Board logo

標題: [發問] 執行程序的速度 [打印本頁]

作者: solely    時間: 2010-10-14 20:11     標題: 執行程序的速度

本帖最後由 solely 於 2011-6-5 22:15 編輯

我制作了一個輸入加班的表單,新增資料的速度超慢的
我不知道我的問題出在哪個地方?
開啟檔案要好幾秒,新增資料的時候,竟然要1分鐘
感覺....好像跑了好幾萬筆的資料-.-""
煩請各位高手幫幫忙~
作者: oobird    時間: 2010-10-14 20:40

本帖最後由 oobird 於 2010-10-14 20:42 編輯

Private Sub CommandButton1_Click()
Application.EnableEvents = False
With Sheets("加班")
With .Range("A65536").End(xlUp)
.Range("a2") = TextBox1.Text
.Range("b2") = TextBox2.Text
.Range("c2") = TextBox3.Text
.Range("d2") = TextBox4.Text
.Range("e2") = TextBox3.Text
.Range("f2") = TextBox6.Text
.Range("g2") = TextBox7.Text
.Range("h2") = TextBox8.Text
.Range("i2") = TextBox9.Text
.Range("j2") = TextBox10.Text
.Range("k2") = TextBox11.Text
.Range("l2") = TextBox12.Text
.Range("m2") = TextBox13.Text
End With
End With
TextBox1.Text = ""
TextBox2.Text = ""
TextBox3.Text = ""
TextBox4.Text = ""
TextBox5.Text = ""
TextBox6.Text = ""
TextBox7.Text = ""
TextBox8.Text = ""
TextBox9.Text = ""
TextBox10.Text = ""
Application.EnableEvents = True
End Sub
另外TextBox5.Text = Weekday(CDate(TextBox3.Text), vbMonday)
作者: solely    時間: 2010-10-14 22:15

回復 2# oobird
oobird版主~
使用EnableEvents似乎無法改善我的狀況,
(我有重新開機再測試)
可能加上我刪了ScreenUpdating和DisplayAlerts情況更嚴重,
我發現到當textbox1存至A2需要10秒,textbox2存到B2要10秒..........
13個儲存格花了130秒-.-
作者: oobird    時間: 2010-10-14 22:37

不會的,我試過了呀,你是因為觸發了自訂函數才慢的,加上那兩行就不會延遲了!
作者: solely    時間: 2010-10-14 22:54

回復 4# oobird
版主~
我試著把"加班總表"刪了.....果然.....速度超...快XDD
雖然加班總表我可以不用那個函數,可是我別的工作表(同一活頁簿)需要,
(加班總表只是順便使用它-.-)
那...我該怎麼克服這個問題呢?!
作者: Hsieh    時間: 2010-10-15 00:06

關閉自動重算[attach]3185[/attach]
作者: solely    時間: 2010-10-15 02:02

回復 6# Hsieh
Hsieh版主~
關閉自動重算,表單輸入資料的速度真的恢復正常XD
但,點選之前版主幫我修訂的"班表"(使用only函數),
輸入資料竟然也反應超慢的,
我記得當初"班表"定搞的時候,並沒有速度上的困擾,
理論上,速度慢應該和only函數無關才對-.-
所以,我又試著把"加班總表"刪了,"班表"輸入資料的速度就恢復正常了。
那.....我真的想不通,"加班總表"倒底是出了什麼問題??
頭大-.-明天再想~
作者: oobird    時間: 2010-10-15 11:27

在你表單輸入的同時,加班總表的only函數就要開始運作,接著後面的sumproduct...都要重算。
跟本的辦法就是別用only函數,把它改成用Sub過程來執行。
作者: solely    時間: 2010-10-16 02:23

回復 8# oobird
oobird版主~
我今天試著,分別把加班、加班總表、自訂函數刪了,運作就一切正常。
看來,三者似乎不能共存在這個活頁簿XD
最後,加班總表放棄使用lonly函數,所有的工作表就沒有延遲現象。

感謝兩位版主的幫忙,我的問題解決了~




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)