返回列表 上一主題 發帖

[發問] 請教高手如何縮減跑vba的時間

[發問] 請教高手如何縮減跑vba的時間

為了縮短方案的工作時間,小妹自己看書學做vba程式,
這個程式是將總表中的資料分類到各表去,
人數少的時候跑得快,但只要超過300人以上程式就要跑2-3分鐘,甚至更久......上司是無法等待這麼久的時間才看到結果。
小妹才學粗淺,想請教的問題為:
1. 是否有能夠縮短跑vba程式的時間? 讓資料更快速的分類完畢?
2. 程式在分類的時候,不會偵測各表已有舊資料,反而直接從下方空白處重複貼上,造成各表的資料有多筆重複。
    請問是否有辦法在分類時,讓各表自動判斷資料是否有重複存在,只要在空白處新增新的幾筆資料即可?

在此感謝各位高手、大大不吝指教,萬分感謝~

測試檔.rar (61.12 KB)

回復 2# 准提部林

感謝大大的教導和語法!!

用了Application.ScreenUpdating = False的指令可以加快程式跑的速度,原本300人要1-2分鐘左右,已縮減至40秒就跑完了。
但是用了大大提供的【篩選和Intersect】語法,反而程式分類和速度更快! 短短3-4秒就跑完了!!
原來差別在於書中教的"迴圈"會導致分類速度很慢...

以前用過篩選來分類過資料,當時是用一個考科、一個按鈕搭配一個篩選及複製指令,導致vba模組顯得有些雜亂。
本以為用書中所教的分類語法會比一個一個篩選來得好,沒想到回頭來用篩選語法才是最適合的。

再次感謝大大,上了寶貴的一課!

TOP

        靜思自在 : 【做人的開始】每一天都是故人的開始,每一個時刻都是自己的警惕。
返回列表 上一主題