Sco*_*man 5 excel vba excel-2007 excel-vba windows-server-2008
环境:Windows Server 2008(SP1)64位| Excel 2007.
我有一个范围内的值(比如60.664).当我在即时窗口中运行代码行时,得到了Null一个结果a blank space:
?Workbooks("ddWorkbook.xlsm").Worksheets("Daily Dashboard").Range("D23").Value
Run Code Online (Sandbox Code Playgroud)
然而,使用Select和ActiveCell声明,如下所示.
Workbooks("ddWorkbook.xlsm").Worksheets("Daily Dashboard").Range("D23").Select
ActiveCell.Value
Run Code Online (Sandbox Code Playgroud)
我可以把这个快速和肮脏Select | ActiveCell地留下来,但我想用最佳实践完成这项工作.
有没有人遇到过这个以及如何Value从Range对象中获取正确的内容?我的研究中没有找到任何东西.
可能是单元格D23位于合并区域,但不是该区域的第一个单元格.这可以解释为什么你得到一个后的价值Select.选择范围后,您可以通过打印地址进行检查:
Workbooks("ddWorkbook.xlsm").Worksheets("Daily Dashboard").Range("D23").Select
Debug.Print ActiveCell.Address
Run Code Online (Sandbox Code Playgroud)
如果是这种情况,那么您可以修复范围或尝试从合并区域获取值:
Workbooks("ddWorkbook.xlsm").Worksheets("Daily Dashboard").Range("D23").MergeArea.Cells(1,1).Value
Run Code Online (Sandbox Code Playgroud)