標題:
請問一個同時執行巨集與函數的問題
[打印本頁]
作者:
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
Option Explicit
Sub Ex()
Dim I As Integer, C, AR()
ReDim AR(1, 0)
With Sheet1
For I = 1 To .[A3].End(xlToRight).Column
For Each C In .Range(.Cells(4, I), .Cells(Rows.Count, I).End(xlUp))
If C <> "" And C.Row > 3 Then
AR(0, UBound(AR, 2)) = C
AR(1, UBound(AR, 2)) = .Cells(3, I)
ReDim Preserve AR(1, UBound(AR, 2) + 1)
End If
Next
Next
End With
With Sheet2
.Range(.[A3], .[B3].End(xlDown)) = ""
.[A3].Resize(UBound(AR, 2), 2) = Application.WorksheetFunction.Transpose(AR)
End With
End Sub
複製代碼
作者:
oobird
時間:
2011-3-3 09:35
Sub yy()
Dim r%, c%, d As Object
Set d = CreateObject("Scripting.Dictionary")
With Sheet1
For c = 1 To 10
For r = 4 To .Cells(65536, c).End(3).Row
If .Cells(r, c) <> "" Then d(.Cells(r, c).Value) = .Cells(3, c)
Next
Next
End With
With Sheet2
.UsedRange.Offset(2, 0) = ""
.[a3].Resize(d.Count, 1) = Application.Transpose(d.keys)
.[b3].Resize(d.Count, 1) = Application.Transpose(d.items)
End With
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/)