你好,我最近發現蠻快的方式通過一個變量數組Varriant陣列刪除Excel中的公式
With Sht
LongY = .Rows.Count
Dat = .Formula
For r = 5 To 6 'LongY
If (Dat(r, 1) = "" Or Dat(r, 4) = "") Then GoTo IgnoRow
LongX = .Columns.Count
For s = 26 To 27 'LongX
If (Dat(2, s) = 0 Or Dat(2, s) = "") Then GoTo IgnoCol 'Or Dat(1, s).EntireColumn.Hidden = True
Price = Dat(2, s)
Ammount = Dat(r, 4)
Base = Dat(r, s)
Material = Application.WorksheetFunction.RoundUp((Base * Ammount), 2) 'no .values => text
'MsgBox (Material)
'CPrice = Material * Price
'Cost = Cost + CPrice
IgnoCol:
Next
'Dat(r, 5) = Cost
'Cost = ""
IgnoRow:
Next
Sht.Formula = Dat
End With
End Sub
進行循環,但我不知道這是如何工作,給了我麻煩。我有大面積的輸入(也有公式),所以當我循環播放這個區域時,所有的EXCEL FORMULAS都會變成.values,我不知道如何避免這種情況。
謝謝你的任何想法。
如果你想讓它引用的公式,而不是值,只需用'* DAT = .Formula'取代'* DAT = .Value'。 – TheEngineer
...和'Table.Value = Dat'與'Table.Formula = Dat'。當你在這裏時,聲明並試圖使用名爲* Long *的變量是不明智的。 – Jeeped
@TheEngineer現在它不是刪除公式,但如果我想在循環中使用該公式的值,它將其用作文本。 –