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
使用 Select
和 ActiveCell
语句,如下所示,但是有效。
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
环境:Windows Server 2008 (SP1) 64 位 | Excel 2007.
我有一个范围内的值(比如 60.664)。当我 运行 立即 window 中的代码行时,结果是 Null
a blank space
:
?Workbooks("ddWorkbook.xlsm").Worksheets("Daily Dashboard").Range("D23").Value
使用 Select
和 ActiveCell
语句,如下所示,但是有效。
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