2015-04-02 82 views
1

我有一個應用程序,它運行我需要加速的一段VBA代碼。在VBA中優化交替格式化

我環顧四周尋找解決方案,但它非常具體,我找不到任何東西。我將4-3000行的格式更改爲可見性。這需要很長時間才能在舊計算機上運行,​​這是該進程通常運行的地方。你們對如何優化它有什麼想法嗎?

For i = Range(startCell).Row To Range(endCell).Row Step 2 

    Rows(i).Interior.color = RGB(50, 50, 50) 'Grey background 
    Rows(i).Font.color = RGB(0, 240, 255) 'Cyan text 
    Rows(i + 1).Interior.color = RGB(0, 0, 0) 'Black background 
    Rows(i + 1).Font.color = RGB(240, 255, 0) 'Yellow text 

Next 
+0

退房[codereview.se]下一次你有工作代碼。 – 2015-04-02 17:55:18

+0

在哪裏以及如何分配'startCell'和'endCell'? – 2015-04-02 17:58:59

回答

0

嘗試增加這樣一個小程序中的代碼模塊:

Public Sub ToggleWaitMode(Optional ByVal wait As Boolean = True) 
    With Excel.Application 

     .Calculation = IIf(wait, xlCalculationManual, xlCalculationAutomatic) 
     .Cursor = IIf(wait, xlWait, xlDefault) 
     .StatusBar = IIf(wait, "Please wait...", False) 

     .DisplayAlerts = Not wait 
     .ScreenUpdating = Not wait 

    End With 

End Sub 

然後修改代碼來調用它:

ToggleWaitMode 
'<your code> 
ToggleWaitMode False 

應該速度了一點東西...或者至少在循環運行時給用戶一些反饋。


其它的(也許更好)無代碼的替代方法是使用條件格式(使用公式看起來像=(MOD(ROW(),2)=0)。你想優化

+1

謝謝!對不起,我沒有登錄到我的帳戶來評論它,但是這非常奏效。 – Dexterious22 2016-03-09 19:34:49