Excel在同一单元格中的输入和输出

时间:2018-08-13 08:43:22

标签: excel formula

我不是程序员,我需要一些帮助!

我有一张excel工作表,我想在背景中有一个公式,当我输入一个数字时,我希望它可以在公式中计算而不在同一单元格中删除它。

公式类似于 X * 6.75%+ X ,其中 X 是输入。 一些帮助,将不胜感激。

谢谢。

3 个答案:

答案 0 :(得分:2)

您尚未标记为需要VBA,但这是我想到的唯一方法。
就像@FoxfireAndBurnsAndBurns所说-如果没有VBA,您每次都必须更新公式。

对于VBA方法,您可以将此代码添加到特定的工作表模块中(根据需要更新单元格引用):

Private Sub Worksheet_Change(ByVal Target As Range)

    If Target.Address = "$A$1" Then
        If IsNumeric(Target) Then
            Application.EnableEvents = False
            'Target = Target * 6.75 / 100 + Target 'Place value in cell.
            Target.Formula = "=" & Target & "* 6.75 / 100 + " & Target 'Update formula in cell.
            Application.EnableEvents = True
        End If
    End If

End Sub

编辑:我已经更新了代码,以便在注释中包含建议。

答案 1 :(得分:1)

我不认为这比简单地使用带有公式的额外列更好,但是...

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)

  If Intersect(Target, Range("A:A")) Is Nothing Then Exit Sub
  'fire only in column A

    If IsNumeric(Target.Value2) Then ' only makes sense to apply if it's a number _
    otherwise it would produce a Type mismatch error

        Application.EnableEvents = False 'to prevent constant looping on change
        Target = Target * 6.75 / 100 + Target
        Application.EnableEvents = True

    Else
         MsgBox ("I can only take numeric values")
    End If

End Sub

注意: 重要的是将Worksheet_Change事件的代码放在各自的工作表标签的模块中。 例如。如果要在名为“ Sheet1"”的工作表中触发公式,则需要确保选择了Sheet1的模块:

enter image description here

将此代码粘贴到其他任何地方(例如Sheet2Module 1)将无法正常工作!

答案 2 :(得分:0)

检查一下:

Sub YourModuleName()
For Each cell In Application.Selection.Cells
cell.Formula = "=" + CStr(cell.Value) + "*" + "n5"
Next
End Sub

n5是您可编辑的单元格

现在,您可以突出显示一系列单元格并运行模块进行计算