【发布时间】:2014-10-30 15:50:47
【问题描述】:
使用 union 语句,我创建了一个包含多个子范围的范围,Worksheet("data")。我需要该范围以在另一个工作表Worksheet("weekly") 上进行计算。因此,我想要范围的地址,包括每个子范围中的工作表名称。 rRng 是我现有的几个子范围的范围。
rRng.Address(External:=True) returns: "data!$D$1570:$D$1575,$D$2992:$D$3000,$D$5979:$D$5988"
但是,要计算此范围内单元格的平均值,我需要:"data!$D$1570:$D$1575,data!$D$2992:$D$3000,data!$D$5979:$D$5988"
目前我找到的唯一解决方案是:
Dim range_string As String
range_string = ""
Dim SubRange As range
For Each SubRange In rRng
range_string = range_string & SubRange.Address(External:=True) & ","
Next SubRange
range_string = Left(range_string, (Len(range_string) - 1))
Worksheets("weekly").range("$C2").Formula = "=AVERAGE(" & range_string & ")"
一定有更简单的方法。有什么建议吗?
亲切的问候, 桑德拉
【问题讨论】:
-
嗨,桑德拉。在使用
Union语句从多个子范围创建rRng时构建字符串可能比之后尝试创建它更容易。你能发布代码来显示rRng是如何创建的吗?