我想在Excel中保存單元格的值。保存單元格的值
多數民衆贊成使用的代碼IM:
Dim oldval As Range
Sub Macro0()
Set oldval = ActiveCell
End Sub
Sub Macro2()
Dim y As Integer
Dim x As Variant
Dim rng2 As Range
Set rng2 = ActiveCell
Dim rng As Range
Set rng = ActiveCell
If rng.Column = 8 And rng.Value <> "" Then
'Extract the number part of string
x = Split(rng2.Value, "_")(0)
y = Split(rng.Value, "_")(0)
If y < 1 Or x = "" Then Exit Sub
If x < y Then
MsgBox "Attenzione, si sta decrementando di stato un fornitore !"
Else
MsgBox "Stato cambiato con successo"
End If
End If
End Sub
我需要保存,這是在細胞就得到改變之前的值。 我試圖用代碼:
Private Sub Worksheet_Change(ByVal Target As Range)
Call Macro1
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Call Macro0
End Sub
但使用不位於工作簿宏犯規因爲即時通訊工作。 我需要做一個控制後,我已經保存舊的值,並檢查它是否高於已插入的新值。 如何保存舊值? 感謝
編輯: @Jeeped 這就是它的外觀文件
通過「Worksheet_Change」事件宏,有時可以在*它被更改後保存單元格*的值。您將不得不提供一些特定的單元格地址(在您的示例代碼中,* rng *和* rng2 *指向相同的'ActiveCell'),最好查看要保存的內容樣本。 – Jeeped 2014-11-05 17:50:49
可靠地做到這一點的唯一方法是將工作表中的值存儲在另一個隱藏的('VeryHidden')工作表中。然後,您可以將新值(使用「更改」事件)與另一張紙上的值進行比較,然後在比較後更新隱藏紙張。 – 2014-11-05 18:05:48
爲了在單元格被更改後獲得單元格的值,您需要使用Application.Undo然後記錄該值,然後您可以再次使用Application.Undo將更改後的值放回 – tigeravatar 2014-11-05 18:41:55