首页 > 解决方案 > 如果单元格为空白且另一个单元格有数据,如何将其设置为 0

问题描述

所以我有这段代码,我想做的是以下内容:

如果Range("aj61:aj432")为空白且Range("F61:F432")有文本,则将空白单元格设置为 0

这是我尝试过但类型不匹配的方法

Sub Insert_0()
    Dim rng As Range
    Set rng = Range("AJ61:AJ432")
    If IsEmpty(rng) And rng.Offset(-30, 0) <> "" Then rng.Value = 0
End Sub

标签: excelvba

解决方案


使用 SpecialCells 从 F 列中的文本值中捕获与 AJ 列中的空白值相交的行。

Option Explicit

Sub Insert_0()

    Dim rng As Range

    On Error Resume Next
    Set rng = Intersect(Range("F61:F432").SpecialCells(xlCellTypeConstants, xlTextValues).EntireRow, _
                        Range("AJ61:AJ432").SpecialCells(xlCellTypeBlanks))
    On Error GoTo 0

    If Not rng Is Nothing Then
        rng = 0
    Else
        Debug.Print Err.Number & ": " & Err.Description
        On Error GoTo -1
    End If

End Sub

推荐阅读