標題:
[發問]
計算模式手動,轉寫資料問題
[打印本頁]
作者:
blue2263
時間:
2016-2-23 12:56
標題:
計算模式手動,轉寫資料問題
請教大大
在程式頭部加入,計算模式改為手動;尾部改回自動
如程式中間有轉寫資料的語句,有需要再前列,加入重新計算等的語句嗎?
還請大大幫忙解惑,謝謝
作者:
GBKEE
時間:
2016-2-23 13:54
回復
1#
blue2263
試試看
Option Explicit
Sub Ex()
Application.Calculation = xlManual
[A1] = ""
With [A2]
.Cells = ""
.Cells = "=A1*5" '公式
MsgBox .Value
[A1] = 10
.Calculate '[A2]的計算
MsgBox .Value
End With
End Sub
複製代碼
作者:
yen956
時間:
2016-2-23 13:54
Application.Calculation = xlManual '手動
Application.Calculation = xlAutomatic '自動
作者:
blue2263
時間:
2016-2-23 16:56
G大 Y大你好
我知道的更改為手動是下面這行,與 G大 Y大的不一樣,請教主要用途差異在那邊?
Application.Calculation = xlCalculationManual '計算模式為手動
Application.Calculation = xlManual '手動
作者:
blue2263
時間:
2016-2-23 17:33
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
作者:
GBKEE
時間:
2016-2-23 20:37
回復
5#
blue2263
試試看,是否如此
'函數公式轉寫為值
.Range("a" & 首列 & ":c" & 尾列 - 2).Calculate
.Range(Cells(首列, 欄號), Cells(尾列 - 2, 尾欄)).Calculate
.Range("a" & 首列 & ":c" & 尾列 - 2) = .Range("a" & 首列 & ":c" & 尾列 - 2).Value
.Range(Cells(首列, 欄號), Cells(尾列 - 2, 尾欄)) = .Range(Cells(首列, 欄號), Cells(尾列 - 2, 尾欄)).Value
複製代碼
作者:
blue2263
時間:
2016-2-24 07:02
回復
6#
GBKEE
了解,謝謝G大解答
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)