如果单元格为空,则用公式填充单元格

时间:2021-06-18 11:28:02

标签: excel vba

我有一个单元格,它的公式为: =SE(G15<>"";0;"") ,这意味着取决于参考单元格不是空白,它必须在该单元格中返回一个 0。

问题是,有时我必须手动将此单元格更改为另一个数值,删除我输入的旧公式,然后在将来此单元格将永远不会再返回 0,以防我不输入又是同一个公式。

我想制作一个 vba 代码来帮助我。每次我删除带有我手动输入的值的单元格时,它都会带回带有 0 的公式,这在 F16:Q16 范围内。

我想写的东西是这样的:

Sub Worksheet_Change(ByVal Target As Range)

并为每个单元格定义 target.range,但我不知道如何继续。

请问,有人可以帮忙吗?

1 个答案:

答案 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