0

我发现了一个有趣的错误。我必须使用为第三方程序制作的工作表。一些细胞看起来已经受损。它们用# 符号填充。Excel 在公式栏窗口中显示负数,它们应该是日期。

在 VBA 中,我也看不到它的内容。一个简单的语句: Range("cell address").value 导致溢出错误 6. 当我尝试查看它的类型时也会发生同样的情况。

由于我必须逐个单元格地阅读所有工作表,因此我想象的唯一解决方案是管理此错误。像这样的事情:在错误恢复下 - 如果错误> 0 ...等。

是否可以在不关闭运行时错误的情况下管理这些单元?

4

1 回答 1

1

正如 Sam Ward 所暗示的,### 在“应该是日期”但显示负数的单元格中的原因是您使用的是 1900 日期系统,并且具有负值,Excel 无法显示.

此外,如果在引用该单元格的 value 属性时在 VBA 中遇到溢出错误,则该单元格中的值可能小于 -657434。(相当于 100 年 1 月 1 日,这是 VBA 可以处理的日期范围的下限)。

如果是上述推测,您可以使用 VBA 通过访问 value2 属性来恢复该单元格中的值。

Range("cell address").value2

当然不清楚为什么你应该有一个包含这种值的日期格式的单元格,所以你的工作表可能有其他问题。

于 2013-11-11T01:41:56.390 回答