在Excel 2010中,我正在编写VBA以获取一系列过滤值的SUM
,并将该结果存储到变量中。代码如下所示:
With Sheets("Output")
.Range("$A:$ZZ").AutoFilter field:=ColIndex(AB), Criteria1:="x"
y = Application.WorksheetFunction.Sum( _
Range(Cells(2, "AC"), Cells(10, "AC")).SpecialCells(xlCellTypeVisible) _
)
这个确实有效,但当我手动玩弄数据时 。当我尝试在未经编辑的数据集上使用此公式时,我得到一个空白结果。问题似乎在于未经编辑的数据。
每个号码都会出现Number Stored as Text
(NSaT)错误。将类型从Text
更改为General
不会导致任何事情发生。我必须打开单元格进行编辑,然后从单元格中移除焦点才能启动类型。之后,我可以在General
之间来回更改Text
,Excel会立即识别这并更新单元格。此时,Sum函数会将General
和Text
字段类型识别为数字。
是否有处理这些NSaT错误的VBA解决方案?我试图在列上使用'NumberFormat',但它没有帮助。我还尝试过再次手动复制和粘贴数据,即使使用特殊的As Value
选项,但在手动玩具之前它仍然存在NSaT错误。