2017-10-06 110 views
1

我在Worksheet(“Model”)中生成范围A.我将这些值移至工作表(“数据”),以便我可以开始存储所有这些数据。我将拥有另一个标签(“SheetC”),用于显示存储数据中两个用户选择的范围。例如从第1天开始的范围A和从第2天开始的范围A. 在将数据移动到“数据”中进行存储的过程中,我想将其放置在最后一个数据的下面。每次在工作表(i)中放入新数据时,我都会在“SheetC”中引用一个计数器。创建动态范围并存储命名范围

我理想地喜欢在“数据”中的每个范围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

谢谢!这样做的窍门。有没有一种方法可以将范围重命名为不同于rngData_Total_b的数据选项卡? 类似于: Dim“rngData_Total_ “ & 一世作为范围而不是固定名称“b”? –

回答

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