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

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

我应该添加到代码,它不会返回值为0Cell为空?

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

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

当“..!A1”不= 0时,您需要修改公式以返回空string。

 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(,)返回一个空string,而不是双引号(例如“”“”):

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