我想知道是否有办法链接一个单元格,以便它永久保存计算结果,以便即使计算输入发生更改,以前的结果也是仍然保存。例如,当我们说我的计算是第一种情况下的x + 2 = y和x = 1时,可以进一步举例说明。我希望能够链接一个单元格,以保存结果y = 3以及输入x = 1,即使我改变了x的值。Excel 2003:提取计算结果
可能的解决方案一起使用IF条件和PASTE SPECIAL命令,但我不知道如何对其进行编程以使其自动化。有没有办法使用公式来做到这一点?或者我必须冒险进入VBA?
我想知道是否有办法链接一个单元格,以便它永久保存计算结果,以便即使计算输入发生更改,以前的结果也是仍然保存。例如,当我们说我的计算是第一种情况下的x + 2 = y和x = 1时,可以进一步举例说明。我希望能够链接一个单元格,以保存结果y = 3以及输入x = 1,即使我改变了x的值。Excel 2003:提取计算结果
可能的解决方案一起使用IF条件和PASTE SPECIAL命令,但我不知道如何对其进行编程以使其自动化。有没有办法使用公式来做到这一点?或者我必须冒险进入VBA?
您可以复制单元格y的值并仅粘贴值 - 在另一个单元格中。 右键 - >选择性粘贴 - >选择“价值”
一个可能的解决方案做使用IF条件和选择性粘贴命令在一起,但我不知道如何编程它这样它是自动的。有没有办法使用公式来做到这一点?或者我必须冒险进入VBA?
这里是无需特殊粘贴命令的方式之一。将代码粘贴到相关的工作表代码区域。请参考快照1。这只是一个例子。请根据您的要求更改它。代码的作用是检查用户是否输入了X的任何值(单元格A2),如果用户确实捕获了它,则捕获Y(单元格B2)的值并将其存储在列D中。请参阅快照2。
快照1
快照2
而这是完整的代码。一个小心,但。不要在没有“.EnableEvents = False”的情况下尝试此代码,也不要在主表单中不进行错误处理。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim LastRow As Long
On Error GoTo Whoa
'~~> Check if any value was entered in cell A2
If Not Intersect(Target, Range("A2")) Is Nothing Then
With Application
.ScreenUpdating = False
.EnableEvents = False
End With
'~~> Get the next available line in Col D for output
LastRow = Range("D" & Rows.Count).End(xlUp).Row + 1
'~~> Save the value
Range("D" & LastRow).Value = Range("B2").Value
End If
LetsContinue:
With Application
.ScreenUpdating = True
.EnableEvents = True
End With
Exit Sub
Whoa:
MsgBox Err.Description
Resume LetsContinue
End Sub
HTH
希德
嗨,我知道如何使用粘贴特殊。我想知道如何编程它,以便某些单元格以这种方式行为并永久保存y的值,并且在更改x时不会更改。也许,阻止它重新评估的一种方法? – user1222280 2012-02-21 00:55:32
所以你想要一个存储每个x的y值的单元格列表? – 2012-02-21 00:59:03
是的,是否有可能这样做? – user1222280 2012-02-21 01:02:59