2017-10-06 164 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