【发布时间】:2014-04-28 17:59:44
【问题描述】:
我是 VBA 新手。我正在尝试使用两列信息创建超过 500 个 xlClusteredColumn 图表,并且我想加快这项工作。第一列包含我想用于命名范围的名称(即:Line1、Line2 等),第二列包含数据范围的间接引用(即Sheet1!C4:D28、Sheet1!C28:D90)。我注意到,如果我为“图表数据系列”字段使用命名范围,数据会很好地显示(但我必须首先创建该命名范围,确保在参考中包含 INDIRECT 公式,(例如:命名范围 Line1 等于 =INDIRECT(Sheet1!C4:C28))。范围将是静态的。
在查看之前的问题时,我似乎找不到一个解决方案,可以选择该集合中的第一个单元格并为其命名,然后使用第二个单元格来定义该范围。我想我可能需要ActiveWorkbook.Names.Add Name:= 公式并将其与循环组合(但我无法让它使用选择或单元格来定义添加名称方面,只有硬编码名称)。
如果解决方案需要,我可以返回并从单元格中提取各个范围(即:C4:D28),并且仅在它使代码更简单的情况下提供图表参考。我知道我的第一次概述尝试并不是唯一的解决方案,而且可能还有一个更优雅的解决方案。我认为使用命名范围会加快图表的工作,但也许有办法减少这一步?
用这些范围中的每一个的所有图表填充新工作表将是锦上添花,但我会很高兴收到帮助以将数据设置为图表。
示例信息:
NameRange1(假设在单元格 A1:A4 中)
SerRange1(在单元格 B1:B4 中)
(图表数据范围需要命名范围“WKD_1_NB”的引用为 '=INDIRECT(WKDpivot!C4:D43)' 才能使图表正常工作。
【问题讨论】:
-
鉴于范围不需要是动态的,为什么不直接使用 Insert|Name|Define 命名范围。
-
嗨@PA,感谢您的建议。我有 546 个范围(和图表),所以如果我可以做一些事情来迭代这个过程,它将加快这个过程。
-
哦,我明白了,这改变了很多...用新信息编辑您的问题,
-
不确定我是否理解您为什么需要使用
Indirect函数。你能详细说明一下吗?