构造一个输入值,显示值的单元格,但单元格值是另一回事?

时间:2018-05-04 02:41:10

标签: excel vba excel-vba excel-formula

所以,标题有点令人困惑。 我将使用一个例子。 我想在单元格A1上输入值3。 而且我希望单元格能够进行一些数学运算,例如,3加1。 接下来,将值返回到单元格A1,BUT 当我点击单元格A1时,我希望它显示数学公式。 所以这就是我得到的:

base

我已经做到了我想要它做的事情,这需要一个值,然后返回它。但是,我似乎无法将Sub A() Dim term1 As Double Dim term2 As Double Range("A1").NumberFormat = "General" term1 = Range("A1").Value term2 = term1 * 3 + 1 Range("A1").Value = term2 term3 = term2 term3 = """term1 * 3 + 1""" Range("A1").NumberFormatLocal = term3 End Sub .NumberFormatLocal值作为字符串。 这样当操作完成后,我看到单元格上显示4,当我点击单元格时,公式term2显示出来。 然后A1 * 3 + 1的目的是让我可以通过在单元格中添加一些其他数字来重新执行此操作。

有谁知道怎么做? 非常感谢!

1 个答案:

答案 0 :(得分:0)

我不确定我是否理解正确,但我认为您希望根据该单元格的值将非工作公式插入到您选择的单元格中。如果是这种情况,以下公式将适合您:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim myFormula As String

If IsNumeric(Selection.Value) = True And Selection.Value <> "" Then
    myFormula = Selection.Value & " * 3 + 1"
    Selection.Value = myFormula
End If

End Sub

由于代码位于Worksheet_SelectionChange事件中,因此每次选择任何单元格时都会有效。我添加了If...Then条件,以便不重新配制已经配制的细胞或空白细胞。

由于该公式适用于所选单元格,因此您应该退出单元格并重新输入,以使其适用于您的数字单元格。

但是如果你不严格需要在自我细胞中创建的公式,而是在另一个细胞中;也可以使用配方溶液。

当您的号码为A1时,请将以下公式写入B1并复制下来:

=ADDRESS(ROW(B1),COLUMN(B1)-1,1) & "* 3 + 1"