Excel 在VBA中使用公式获取输出时出错

Excel 在VBA中使用公式获取输出时出错,excel,vba,Excel,Vba,我使用的是below VBA宏,该宏在D列单元格值中查找,并在A列中等同/复制粘贴在D列中可用但在A列中不可用的值 使用下面的公式后,我在A列中得到了缺失的值,但在A列中得到了额外的0。请帮助我更正此错误。或者,是否有任何方法使用vba来获得所需的结果。多谢各位 Sub fillIntheBlank() Set WkRg = Worksheets("sheet1").UsedRange Set WkRg = Intersect(WkRg, WkRg.Offset(3, 0))

我使用的是below VBA宏,该宏在D列单元格值中查找,并在A列中等同/复制粘贴在D列中可用但在A列中不可用的值

使用下面的公式后,我在A列中得到了缺失的值,但在A列中得到了额外的0。请帮助我更正此错误。或者,是否有任何方法使用vba来获得所需的结果。多谢各位

Sub fillIntheBlank()
    Set WkRg = Worksheets("sheet1").UsedRange
    Set WkRg = Intersect(WkRg, WkRg.Offset(3, 0))

    If Application.CountBlank(WkRg.Columns(1)) <> 0 Then
        With WkRg.Columns(1).SpecialCells(xlCellTypeBlanks)
                .Formula = "=RC[3]"
        End With
    End If
End Sub
试试这个:

Dim WkRg as Range

With WkRg.Columns(1).SpecialCells(xlCellTypeBlanks)
       .Formula = "=if(RC[3]="""","""",RC[3])"
End With
否则,如果在D:D列上找不到任何内容,它将返回0而不是nullString nothing。 但是,我必须承认我不理解

Set WkRg = Intersect(WkRg, WkRg.Offset(3, 0))

如果d为空,我相信您不需要0

Sub Button1_Click()
    On Error GoTo er
    Columns("A:A").SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=IF(RC[3]<>"""",RC[3],"""")"
er:     MsgBox "No Blanks Found"
End Sub

试图比较列A和D,并在COL A中设置缺失值,这就是为什么使用这个代码将EQUAUTE值从列中的空白单元格中放置EDAUTE值是什么错误?将0的CL A或0的单元格放在COL A的空白单元格中,这样就可以更接近评论了。
Sub Button2_Click()
    Dim rng As Range, c As Range
    On Error GoTo er
    Set rng = Range("A:A").SpecialCells(xlCellTypeBlanks)
    For Each c In rng.Cells
        c = c.Offset(, 3)
    Next
er:
End Sub