返回列表 上一主題 發帖

[發問] 求高手指點,為何共用簿後,VBA的運行速度會減慢?

[發問] 求高手指點,為何共用簿後,VBA的運行速度會減慢?


我在工作表1上製作一個搜尋鍵來搜尋工作表2的資料,只要在A1位置上輸入關鍵字,
就會在下面顯示結果。如上圖所示,速度只需0.4805,非常快速。


但共用活頁簿後,速度大幅減慢,居然要61.6797秒,
實在不能接受,為何會這樣?之前測試過各種VBA代碼可能會慢一點點,
但不致於慢那麼多,到底是甚麼問題呢?希望各位高手能夠指點一下,
謝謝!

上傳附件一份,謝謝!

http://pan.baidu.com/s/1o6ZxaVC

TOP

回復 1# leehom


    這會基VBA於網絡讀取資料所需時間, 如果還有寫入時間就更加了。

TOP

回復 3# ikboy

終於有人回應了,那應該怎麼寫才可解決這個問題?

TOP

回復 4# leehom


    想下載來看,但 見到如此,怕怕。

1.PNG (8.54 KB)

1.PNG

TOP

回復 4# leehom


    修改程式碼,只能快一點點,網路問題,和上面說的一樣
  1. Public Sub Search()
  2.     t = Timer
  3.     Application.ScreenUpdating = False
  4.     Dim b As Range
  5.     A = Sheets(1).[a1]
  6.     With Sheets(2)
  7.         Set b = .Columns(1).Find(A, , , 1, , 2)
  8.         Sheets(1).Range("A3:H3") = .Range(.Cells(b.Row, "A"), .Cells(b.Row, "H"))
  9.     End With
  10.     Application.ScreenUpdating = True
  11.     MsgBox Format(Timer - t, "0.0000")
  12. End Sub
複製代碼

TOP

回復  leehom


    修改程式碼,只能快一點點,網路問題,和上面說的一樣
lpk187 發表於 2016-1-20 10:01



我試了一下,很奇怪,為甚麼抓不到任何資料?都是空白的....

另外,關於網路問題,我原先的程式碼只是試將活頁簿設成"共用"就慢了,
並未正式和別人共用,檔案都放在本機磁碟,理應不關網路的事吧?

TOP

回復 5# ikboy


不會吧...可能是xlsm檔案才誤以為帶有病毒,放心沒有事的~

TOP

回復 7# leehom

剛認真的看了一下,執行共用你原本的程式碼,共用後,確實慢很多
    你再試看看
  1. Public Sub exA()
  2.     t = Timer
  3.     Application.ScreenUpdating = False
  4.     Dim b As Range
  5.     A = Sheets("工作表1").[a1]
  6.     If Range("A3") <> "" Then
  7.         Sheets(1).Range("a3:h3").Clear
  8.     End If
  9.     With Sheets("工作表2")
  10.         Set b = .Columns(1).Find(A, , , 1, , 2)
  11.         arr = .Range(.Cells(b.Row, "A"), .Cells(b.Row, "H"))
  12.         Sheets("工作表1").Range("A3:H3") = arr
  13.     End With
  14.     Application.ScreenUpdating = True
  15.     MsgBox Format(Timer - t, "0.0000")
  16. End Sub
複製代碼

TOP

回復 9# lpk187

對啊,不知道是甚麼原因。
我試了一下你這段,共用後速度沒有影響,很棒,謝謝分享!!

TOP

        靜思自在 : 我們最大的敵人不是別人.可能是自己。
返回列表 上一主題