当Range.Value为空时,VBA在Excel中使用.Formula返回0

时间:2016-08-04 07:07:19

标签: excel vba excel-formula

如果.Formula = "='C:\data\[adxl364.xls]ADXL364_QC'!A1"的结果为空,则会在0中返回值Worksheet

我应该在代码中添加什么,以便在0为空时不返回Cell的值?

Sub GetRange()
    With Range("A:Z")
        .Formula = "='C:\data\[adxl364.xls]ADXL364_QC'!A1"
        .Formula = .Value
    End With
End Sub

2 个答案:

答案 0 :(得分:1)

当" ..!A1"时,您需要修改公式以返回空字符串。不= 0。

Sub GetRange()
    With Range("A:Z")
        .Formula = "=If('C:\data\[adxl364.xls]ADXL364_QC'!A1 > 0,'C:\data\[adxl364.xls]ADXL364_QC'!A1,Text(,))"
        .Formula = .Value
    End With
End Sub

我使用Text(,)返回空字符串而不是加倍双引号(例如""""):

"=If('C:\data\[adxl364.xls]ADXL364_QC'!A1 > 0,'C:\data\[adxl364.xls]ADXL364_QC'!A1,"""")"

答案 1 :(得分:1)

您可以使用以下功能:=IF(ISBLANK('C:\data\[adxl364.xls]ADXL364_QC'!A1);"";'C:\data\[adxl364.xls]ADXL364_QC'!A1)