我不是程序员,我需要一些帮助!
我有一张excel工作表,我想在背景中有一个公式,当我输入一个数字时,我希望它可以在公式中计算而不在同一单元格中删除它。
公式类似于 X * 6.75%+ X ,其中 X 是输入。 一些帮助,将不胜感激。
谢谢。
答案 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
的模块:
将此代码粘贴到其他任何地方(例如Sheet2
或Module 1
)将无法正常工作!
答案 2 :(得分:0)
检查一下:
Sub YourModuleName()
For Each cell In Application.Selection.Cells
cell.Formula = "=" + CStr(cell.Value) + "*" + "n5"
Next
End Sub
n5是您可编辑的单元格
现在,您可以突出显示一系列单元格并运行模块进行计算