在Excel中,来自Access DB的空数据不存在错误

我想在Excel中为我从Access DB获得的空数据生成#N / A错误。

这是从交叉表查询继续:获取空数据从Access数据库中丢失的数据 。

现在,我在Access DB中获得了这种格式的数据,并且可以在Excel中以下列格式获取数据:

myDate South West East 11/1/2013 10 20 10 11/2/2013 10 20 10 11/3/2013 11/4/2013 10 30 10 

但是我想把#N / A错误,所以计算超过这个值的平均函数将超过#N / A,这将让我知道如果有缺失值。

所以我想要结果就像

 myDate South West East 11/1/2013 10 20 10 11/2/2013 10 20 10 11/3/2013 #N/A #N/A #N/A 11/4/2013 10 30 10 

我似乎无法解决这个问题。

我认为使用NZ函数捕获空值,并把#N / A,但我认为它只会把string“#N / A”这是不是我想要的,因为Excel只是跳过计算中的string值。 我希望它是Excel错误#N / A。

无论如何,我怎么能做到这一点?

我现在所能想到的就是在Excel VBA中有if语句来检查区域,看是否有空值,并用#N / A错误replace它们。 但是我希望Excel工作表是干净的,尽可能less用代码。

有另一种方法吗?

任何帮助或暗示将不胜感激。

即使是string#N/A也可以通过计算来正确识别。 尝试使用数字填充多个单元格,然后select一个单元格,然后手动input#N/A不会被跳过。 把一些没有被Excel识别的东西比如BK201或者其他的东西,它被跳过。

截图:

一些随机的文字插入范围:

在这里输入图像描述

#N/A手动input到单元格中:

在这里输入图像描述

没有绿色的三angular形,你可以在配方栏中看到它被input到单元格中。 基本上,一个string#N/A 但是请注意,底部的AVERAGEfunction现在出错了。

另外,根据我所读到的关于NZ函数的内容,我不认为它在Excel中具有相同的function。 这里最好的方法是使用一个子程序,用#N #N/Areplace所有的空白单元格。 这是一个简单而无阻塞的代码。

 Sub ReplaceWithNA() Dim Rng As Range Set Rng = Sheet1.Range("A1:A10") 'Modify as necessary. For Each Cell In Rng If Len(Cell) = 0 Then Cell.Value = CVErr(2042) End If Next Cell End Sub 

让我们知道这是否有效。 🙂

你可以使用Excelfunction:

  • 如果
  • ISBLANK
  • NA()

所以在下面的testing中耶稣没有得分:

在这里输入图像说明


编辑

如果你不想使用第二个表中的函数,那么你仍然可以使用这个函数,如下所示:

 Sub UsingVBA() Dim x As Integer With ThisWorkbook.Sheets("Sheet1") x = .Cells(.Rows.Count, 2).End(Excel.xlUp).Row .Range(.Cells(3, 4), .Cells(x, 4)).Value = "=IF(ISBLANK(C3),NA(),C3)" .Range(.Cells(3, 3), .Cells(x, 3)).Value = .Range(.Cells(3, 4), .Cells(x, 4)).Value .Range(.Cells(3, 4), .Cells(x, 4)).ClearContents End With End Sub