【发布时间】:2017-10-06 13:37:21
【问题描述】:
我在工作表(“模型”)中生成范围 A。我将这些值移动到 Worksheet("Data"),以便我可以开始存储所有这些数据。我将有另一个选项卡(“SheetC”)显示存储数据中用户选择的两个范围。例如,第 1 天的范围 A 和第 2 天的范围 A。 在移动数据以存储在“数据”中的过程中,我想将其直接放在最后一个下方。我有一个在“SheetC”中引用的计数器,每次将新数据放入工作表 (i) 时都会增加。
理想情况下,我希望“数据”中的每个范围 A 都被命名为不同的范围,因此当用户选择某个范围时,我可以通过调用它来简单地显示该范围,而不必在存储的数据和使用偏移量。
Dim rngData_Total_a As Range
Dim rngData_Total_b As Range
Dim i As integer
i = Sheets("SheetC").Range("AJ3").Value
Set rngData_Total_a = Sheets("Model").Range("R14:BH270")
Set rngData_Total_b = Sheets("Data").Range(Cells(3 + 270 * i, 3), Cells(3 + 257 * (i + 1), 3))
rngData_Total_b.Value = rngData_Total_a.Value
我不断收到应用程序/对象定义的错误。可以简单地设置一个范围吗?或者有没有更有效的方法来做到这一点?理想情况下,我还想要一个动态范围名称,以便 rngData_Total_b 随每个新范围更改其名称。基本上,考虑到我不知道我将在那里存储的范围数量,该过程将复制我在“数据”中预先定义 x 个范围为不同名称和不同位置的范围。
谢谢
安东尼
【问题讨论】:
-
您需要将范围内的 Cells() 限定为同一个父工作表
Sheets("Data").Range(Sheets("Data").Cells(... -
谢谢!那成功了。有没有办法将范围重命名为与 rngData_Total_b 不同的范围,一旦将其放置在“数据”选项卡中?类似于: Dim "rngData_Total_" & i as Range 而不是 "b" 的固定名称?
标签: vba excel syntax named-ranges