经过对互联网的深入研究,我设法找到了VBA代码,使我能够记住公式的先前结果。我想修改此代码,以获取公式的先前值在该公式旁边的另一列中。例如:如果” B2:B80”包含公式,我希望“ D2:D80”显示这些公式的先前值。
我显示的代码不会在单个单元格中保留先前的值,而是连续向下填充一列,我的目标是在单个单元格中但可以获取列中多个单元格的每个公式的先前值。
Dim xVal As String
Private Sub Worksheet_Change(ByVal Target As Range)
Static xCount As Integer
Application.EnableEvents = False
If Target.Address = Range("C2").Address Then
Range("D2").Offset(xCount, 0).Value = xVal
xCount = xCount + 1
Else
If xVal <> Range("C2").Value Then
Range("D2").Offset(xCount, 0).Value = xVal
xCount = xCount + 1
End If
End If
Application.EnableEvents = True
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
xVal = Range("C2").Value
End Sub
请尝试以下简单代码。我认为它将满足您的要求。
Sub CopyValues()
Range("B2:B80").Copy
Cells(2, "D").PasteSpecial xlValues
Application.CutCopyMode = False
End Sub