将公式dynamic添加到Excel单元格中
有没有办法(VB?) dynamic地添加公式到Excel单元格 ?
我有一个单元格的条件真假,他们基于一个checkbox的变化。
我还有另外一个细胞,里面有一个公式。 如果取消选中该checkbox,则应使用此公式 。 如果checkbox被选中,那么用户应该可以手动插入值 (没有任何公式提示),所以公式不应该在那里。
我正在考虑一个解决scheme,我将公式添加到单元格,如果checkbox未选中,然后如果checkbox被选中,那么我会清除单元格。
这怎么可能呢? 我不是很熟悉Excel编码和VBA。
如果你有一个经典的Excelcheckbox,你可以添加一个Linked或者True或False 的Linked Cell 。
在下面的代码中, 链接的单元格在A1
,在B1
使用公式的单元格,需要为空或由公式填充的单元格在C1
。
您需要指定Sheet_Name (可以是不同的),并将代码直接放入VBA中的Sheet“module” (按Alt+F11
然后双击Linked Cell中的工作表(在左侧面板中)),然后只需粘贴和编辑您的规格)
Private Sub Worksheet_Change(ByVal Target As Range) Dim LinkedCell As Range, _ FormulaCell As Range, _ ChangingCell As Range Set LinkedCell = Sheets("Sheet_Name").Range("A1") Set FormulaCell = Sheets("Sheet_Name").Range("B1") Set ChangingCell = Sheets("Sheet_Name").Range("C1") If Application.Intersect(Target, LinkedCell) Is Nothing Then 'not in linked cell Else 'in linked cell If LinkedCell.Value2 <> True Then 'Unchecked ChangingCell.FormulaLocal = ChangingCell.FormulaLocal Else 'Checked ChangingCell.FormulaLocal = vbNullString End If End If Set LinkedCell = Nothing Set FormulaCell = Nothing Set ChangingCell = Nothing End Sub
好的,你需要一个TRUE / FALSE单元格的触发器来执行下一个VBA代码,右键单击表名并单击“查看代码”并input以下代码:
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("A5:A5")) Is Nothing Then 'define adress of your True/Flase cell If Target.Cells.Value = False then Range("B5").formula = "=enter your formula" 'define adress for cell with formula aswell else Range("B5").value = "" end if end if end sub
以及你可以使用:
if userform1.checkbox.checked = false then range("A1").formula = "=myformula" else range("A1").value = "" end if
你需要插入代码到userformcheckbox单击或更改事件都应该有相同的效果,只需双击用户forms的checkbox,它会带你到单击事件或更换点击“更改”,希望这就是你意思是实现,欢呼PS。 感谢您的build议@ 99moorem