我想在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