返回列表 上一主題 發帖

[發問] 計算模式手動,轉寫資料問題

[發問] 計算模式手動,轉寫資料問題

請教大大
在程式頭部加入,計算模式改為手動;尾部改回自動
如程式中間有轉寫資料的語句,有需要再前列,加入重新計算等的語句嗎?
還請大大幫忙解惑,謝謝

G大 Y大你好
我知道的更改為手動是下面這行,與 G大 Y大的不一樣,請教主要用途差異在那邊?
Application.Calculation = xlCalculationManual '計算模式為手動
Application.Calculation = xlManual       '手動

TOP

G大你好

再將函數公式轉寫為值時,G大是用   .Calculate
我是加入,下面這一句程式碼,我的用法正確嗎?

        '計算工作表,等待計算結束後,再進行下一步
           Application.Calculate '計算工作表
           Do Until Application.CalculationState = xlDone
           DoEvents
           Loop

Sub ex()
    Application.Calculation = xlCalculationManual '計算模式為手動
        With Sheets("分析")
        首列 = .Range("首列")
        欄號 = .Range("欄號")
        尾列 = Cells(Rows.Count, 1).End(xlUp).Row '由下往上找最後一列資料
        尾欄 = Cells(尾列, Columns.Count).End(xlToLeft).Column '由右往左找
        '貼上公式1
        .Range("a" & 尾列 & ":c" & 尾列).Copy
        .Range("a" & 首列 & ":c" & 尾列 - 2).PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
            SkipBlanks:=False, Transpose:=False
        '貼上公式2
        .Range(Cells(尾列, 欄號), Cells(尾列, 尾欄)).Copy
        .Range(Cells(首列, 欄號), Cells(尾列 - 2, 尾欄)).PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
            SkipBlanks:=False, Transpose:=False
        
        '計算工作表,等待計算結束後,再進行下一步
           Application.Calculate '計算工作表
           Do Until Application.CalculationState = xlDone
           DoEvents
           Loop

         '函數公式轉寫為值
        .Range("a" & 首列 & ":c" & 尾列 - 2) = .Range("a" & 首列 & ":c" & 尾列 - 2).Value
        .Range(Cells(首列, 欄號), Cells(尾列 - 2, 尾欄)) = .Range(Cells(首列, 欄號), Cells(尾列 - 2, 尾欄)).Value
        End With
    Application.Calculation = xlCalculationAutomatic '計算模式為自動
End Sub

TOP

回復 6# GBKEE


    了解,謝謝G大解答

TOP

        靜思自在 : 話多不如話少,話少不如話好。
返回列表 上一主題