我在第一行有5个单元格:A1是1,B1是2,C1是3,D1是4,E1是5.现在我想选择奇数并将它们命名为“list_a_odd”,所以我保存CONTROL并选择A1,C1和E1,然后在名称框中输入“list_a_odd”,然后按ENTER键。现在在A2中,如果我键入“= SUM(list_a_odd)”,它会给我9的结果,这是正确的和预期的。但是如果我输入“= list_a_odd”,它会给我一个错误“#VALUE!”。但是,如果我选择所有5个单元格(A1到E1)并将其命名为“list_a”,并且在A2中放置了“= list_a”,它将在单元格中显示“1”,并且可以将A2到E2显示list_a中的所有5个数字。所以这在引用单元格中的非连续命名区域时看起来只是一个问题。这是一个Excel错误?Excel 2007:我如何引用非连续的命名范围?
回答
您所描述的list_a
行为是隐含交集范围的一个示例。 list_a指的是一个连续范围A1:E1
,这是一个期望单个单元格的公式,当放置在A
到E
列范围内时,使用此范围参考计算出交点并返回该单元格。
也就是说,C2 =A1:E1
或=list_a_odd
中的公式实际上仅将C1
修改为公式。
正如你所说,list_a_odd
是一个不连续多区域范围。隐式相交不适用于不连续范围。
一些(但不是全部)函数适用于不连续范围,包括SUM,这就是为什么=SUM(list_a_odd)
按预期工作的原因,就像=SUM(A1,C1,E1)
也可以工作。
EDIT
返回表示不连续的范围内,我会用一个用户定义的函数以与阵列式组合的连续范围。
在UDF中,使用Range.Areas
属性循环遍历不连续范围中的每个子范围(请记住,Areas
中的每个项目可以是单个单元格或单独一个范围)。构建一个值数组以返回到工作表上的数组公式。
确切的细节将取决于您的具体要求以及您希望如何制作UDF。去吧,如果你需要更多帮助,请再次发帖
感谢您的解释。我想要做的就是定义一个不连续的多单元格区域,然后将该区域以连续的方式放置在另一个表单上的特定行中。有什么办法可以实现吗? – 2011-05-28 01:58:41
感谢提示。但我从未在VBA中做过任何编程,我的解决方法是将不连续的单元格映射到一系列连续的单元格,并为连续范围命名。 – 2011-05-29 03:06:17
- 1. 非连续范围
- 2. 如何从Excel中非连续命名范围中选择单个值
- 3. Excel VBA - 如何使用引用非连续列的COUNTIF值填充范围
- 4. 如何在Google表格中引用非连续范围的列?
- 5. 在Excel中引用命名范围
- 6. excel vba范围属性非连续范围
- 7. 使用非连续范围从Excel导入Excel?
- 8. Excel非连续命名范围值评估为#VALUE,导致SUMIF失败
- 9. 在范围函数中引用命名范围(Excel-VBA)
- 10. 如何引用excel命名范围内的单元格?
- 11. Excel中的命名范围
- 12. 如果数字为非连续范围,则为Excel总和
- 13. Excel Interop - 如何更改命名范围
- 14. Excel:命名范围与VBA
- 15. 对于非连续范围的循环
- 16. 用Excel快速命名范围用C#
- 17. Excel vba:从非连续范围中选择随机单元格
- 18. 非连续范围成单维阵列
- 19. 将范围(非连续)转换为值
- 20. vba循环在非连续范围内
- 21. 使用更改命名范围Excel VBA
- 22. Excel命名图表语法的范围?
- 23. Excel的VBA命名范围行和
- 24. Excel中:动态命名范围 - 最后非文本值
- 25. 如何在Excel命名范围中引用“子集”或单元格?
- 26. 通过C#设置Excel命名范围?
- 27. vba excel set动态命名范围
- 28. 在Excel中命名范围OpenXML
- 29. excel命名范围副本从表到
- 30. 在Excel中引用范围
@Tony Wang:你的第一段似乎有一个错字导致了不一致。 '现在我想选择奇数并将它们命名为“list_odd”,因此我按住CONTROL并选择A1,C1和E1,然后在名称框中键入“list_a_odd”,然后按Enter。现在在A2中,如果我键入“= SUM(list_odd)”,'。你根据你的帖子命名范围'list_a_odd',但是你将'list_odd'传递给Excel。 – Jubbles 2011-05-27 18:43:49
@Jubbles - 感谢您的提醒。我只是改变了它。这只是我的文章中的错字,在我的Excel表格中,我的名字一致。 – 2011-05-27 18:46:50