Excel Range.Value range实际有数据时返回0

Excel Range.Value returning 0 when range actually has data

环境:Windows Server 2008 (SP1) 64 位 | Excel 2007.

我有一个范围内的值(比如 60.664)。当我 运行 立即 window 中的代码行时,结果是 Null a blank space:

?Workbooks("ddWorkbook.xlsm").Worksheets("Daily Dashboard").Range("D23").Value

使用 SelectActiveCell 语句,如下所示,但是有效。

Workbooks("ddWorkbook.xlsm").Worksheets("Daily Dashboard").Range("D23").Select
ActiveCell.Value

我可以使用 Select | ActiveCell 快速完成这项工作,但我希望通过最佳实践完成这项工作。

有没有人遇到过这个以及如何让 Value 直接从范围对象读取?我在研究中没有发现任何东西。

可能是 D23 单元格在合并区域中,但不是该区域的第一个单元格。这可以解释为什么您在 Select 之后获得值。 选择范围后,您可以通过打印地址来检查它:

Workbooks("ddWorkbook.xlsm").Worksheets("Daily Dashboard").Range("D23").Select
Debug.Print ActiveCell.Address

如果是这样,那么您可以修复范围或尝试从合并区域获取值:

Workbooks("ddWorkbook.xlsm").Worksheets("Daily Dashboard").Range("D23").MergeArea.Cells(1,1).Value