我在第一行有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. excel函數中的非連續範圍
- 2. 非連續範圍
- 3. 如何從Excel中非連續命名範圍中選擇單個值
- 4. 如何在excel 2007中使用VBA重命名範圍
- 5. Excel VBA - 如何使用引用非連續列的COUNTIF值填充範圍
- 6. 如何在Google表格中引用非連續範圍的列?
- 7. 在Excel中引用命名範圍
- 8. excel vba範圍屬性非連續範圍
- 9. 使用非連續範圍從Excel導入Excel?
- 10. Excel非連續命名範圍值評估爲#VALUE,導致SUMIF失敗
- 11. 在範圍函數中引用命名範圍(Excel-VBA)
- 12. 如何引用excel命名範圍內的單元格?
- 13. Excel中的命名範圍
- 14. 是否有可能使用非連續的命名範圍填充列表框?
- 15. VBA引用命名範圍
- 16. Excel Interop - 如何更改命名範圍
- 17. 如果數字爲非連續範圍,則爲Excel總和
- 18. Excel:命名範圍與VBA
- 19. 對於非連續範圍的循環
- 20. Excel:在非連續範圍內最常見的值/字
- 21. 用Excel快速命名範圍用C#
- 22. Excel VBA多列列表框添加非連續範圍
- 23. Excel vba:從非連續範圍中選擇隨機單元格
- 24. 收集文字非連續範圍
- 25. 非連續範圍成單維陣列
- 26. vba循環在非連續範圍內
- 27. 將範圍(非連續)轉換爲值
- 28. Excel 2010使用多個命名範圍
- 29. 使用更改命名範圍Excel VBA
- 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