创建动态范围并存储命名范围

时间:2017-10-06 13:37:22

标签: excel vba excel-vba syntax named-ranges

我在工作表中生成范围A("模型")。我将这些值移动到工作表("数据"),以便我可以开始存储所有这些数据。我将有另一个选项卡(" 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个范围作为不同的名称和不同的位置,考虑到我不知道我将在那里存储的范围的数量。

由于

安东尼

1 个答案:

答案 0 :(得分:0)

尝试测试

Sub test()
Dim rngData_Total_a As Range
Dim rngData_Total_b As Range
Dim i As Integer
Dim rngT As Range

i = Sheets("SheetC").Range("AJ3").Value
Set rngData_Total_a = Sheets("Model").Range("R14:BH270")
With Sheets("Model")
    Set rngT = .Range("c" & Rows.Count).End(xlUp)(2)
    Set rngDaata_total_b = rngT.Resize(257, 43)
End With
'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
End Sub