Board logo

標題: 請問一個同時執行巨集與函數的問題 [打印本頁]

作者: lone_tiger0303    時間: 2011-3-2 17:41     標題: 請問一個同時執行巨集與函數的問題

我有一個檔案內同時有巨集與函數,當我執行巨集時速度會很慢(因為函數也在作重算儲存格的動作),如何設定讓巨集先跑完在作函數的統計
謝謝
作者: hugh0620    時間: 2011-3-2 17:49

本帖最後由 hugh0620 於 2011-3-2 17:52 編輯

回復 1# lone_tiger0303


    可以在巨集執行時先關掉自動計算  再執行完你原來的程式碼後 再打開自動計算
   試試看~ 應該會使你的巨集執行的較快~
    這是之前一些版主大大傳授的經驗~

   Application.Calculation=xlCalculationManual <-----手動計算

   巨集程式碼


   Application.Calculation=xlCalculationAutomatic <-----自動計算

   如果還是很慢滴話~ 可能要檢視你的整體寫法~ 再看看是要修改函數.巨集或是架構~
作者: lone_tiger0303    時間: 2011-3-2 18:24

好像有變快了~~謝謝
作者: lone_tiger0303    時間: 2011-3-2 18:29

在請教一下,如何讓Sheet1表內資料轉換成Sheet2表的排列?Sheet1表資料會有增減非都固定數量
作者: GBKEE    時間: 2011-3-2 20:02

回復 4# lone_tiger0303
  1. Option Explicit
  2. Sub Ex()
  3.     Dim I As Integer, C, AR()
  4.     ReDim AR(1, 0)
  5.     With Sheet1
  6.         For I = 1 To .[A3].End(xlToRight).Column
  7.             For Each C In .Range(.Cells(4, I), .Cells(Rows.Count, I).End(xlUp))
  8.                 If C <> "" And C.Row > 3 Then
  9.                     AR(0, UBound(AR, 2)) = C
  10.                     AR(1, UBound(AR, 2)) = .Cells(3, I)
  11.                     ReDim Preserve AR(1, UBound(AR, 2) + 1)
  12.                 End If
  13.             Next
  14.         Next
  15.     End With
  16.     With Sheet2
  17.         .Range(.[A3], .[B3].End(xlDown)) = ""
  18.         .[A3].Resize(UBound(AR, 2), 2) = Application.WorksheetFunction.Transpose(AR)
  19.     End With
  20. End Sub
複製代碼

作者: oobird    時間: 2011-3-3 09:35

  1. Sub yy()
  2. Dim r%, c%, d As Object
  3. Set d = CreateObject("Scripting.Dictionary")
  4. With Sheet1
  5.     For c = 1 To 10
  6.         For r = 4 To .Cells(65536, c).End(3).Row
  7.             If .Cells(r, c) <> "" Then d(.Cells(r, c).Value) = .Cells(3, c)
  8.         Next
  9.     Next
  10. End With
  11. With Sheet2
  12.     .UsedRange.Offset(2, 0) = ""
  13.     .[a3].Resize(d.Count, 1) = Application.Transpose(d.keys)
  14.     .[b3].Resize(d.Count, 1) = Application.Transpose(d.items)
  15. End With
  16. End Sub
複製代碼

作者: lone_tiger0303    時間: 2011-3-4 12:42

執行後出現一些問題,如附件所述
作者: GBKEE    時間: 2011-3-4 13:18

本帖最後由 GBKEE 於 2011-3-4 13:20 編輯

回復 7# lone_tiger0303
沒有故障阿!
請看清除如圖:  指定好正確的工作表物件名稱

[attach]4911[/attach]
作者: lone_tiger0303    時間: 2011-3-4 13:58

唉阿~~抱歉我沒注意看~~謝謝GBKEE解答
作者: oobird    時間: 2011-3-4 14:56

這個原因通常是隨意變更工作表順序
存檔後再開,工作表名與code name就亂了!
作者: lone_tiger0303    時間: 2011-3-5 12:14

很抱歉造成您的困擾




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