我在工作表中生成范围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个范围作为不同的名称和不同的位置,考虑到我不知道我将在那里存储的范围的数量。
由于
安东尼
答案 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