我有一个单元格,它的公式为: =SE(G15<>"";0;"")
,这意味着取决于参考单元格不是空白,它必须在该单元格中返回一个 0。
问题是,有时我必须手动将此单元格更改为另一个数值,删除我输入的旧公式,然后在将来此单元格将永远不会再返回 0,以防我不输入又是同一个公式。
我想制作一个 vba 代码来帮助我。每次我删除带有我手动输入的值的单元格时,它都会带回带有 0 的公式,这在 F16:Q16
范围内。
我想写的东西是这样的:
Sub Worksheet_Change(ByVal Target As Range)
并为每个单元格定义 target.range
,但我不知道如何继续。
请问,有人可以帮忙吗?
答案 0 :(得分:0)
使用工作表更改事件:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng As Range, c As Range
Set rng = Application.Intersect(Target, Me.Range("F16:Q16")) 'range to be checked
If Not rng Is Nothing Then
On Error GoTo haveError
Application.EnableEvents = False 'stop updates from re-triggering this handler
For Each c In rng.Cells
If Not c.HasFormula And Len(c.Value) = 0 Then
c.Formula = "=IF(G15<>"""",0,"""")" 'use US-style from VBA
' or use FormulaLocal
End If
Next c
End If
haveError:
Application.EnableEvents = True 'make sure events are re-enabled
End Sub