[英]How can I create multiple ranges in VBA using 'for each' loop?
閱讀此主題的人,這是我在 StackOverflow 上的第一個問題,如果我犯了任何錯誤,請原諒我,如果有人提供幫助,我將不勝感激。
我有一個表,它被聲明為 ListObject。 為了從表的每一列插入和獲取數據。 我只是將范圍設置為:
Dim genTable As ListObject
Set genTable = test.ListObjects("hourly_data")
Set u1_NetLoad = genTable.ListColumns("U1 Net Load").DataBodyRange
我使用了以下代碼並幫助我設置了范圍,但它並不令我滿意。 我想為我的編程知識學習更多動態方法。
For Each word In genTable.HeaderRowRange
i = 1 + i
test.Cells(22 + i, 2).value = "Set " & Replace(CStr(word), " ", "") & _
" = genTable.ListColumns(" & Chr(34) & word & Chr(34) & ").DataBodyRange"
Next
實際上,我的腳本工作得很好,但我只是想知道我是否可以更輕松地設置范圍並取決於變量。 就我而言,我輸入了每個范圍。 我試過像這樣的“for each”循環,但它沒有用。
For Each word In genTable.HeaderRowRange
range_name = Replace(CStr(word), " ", "") & "_"
Set range_name = genTable.ListColumns(word).DataBodyRange
Next
上面的代碼不起作用,有沒有辦法讓它起作用? 謝謝閱讀。
上周我有同樣的問題,我做了一些挖掘並提出了這個問題。
首先,我定義數組,然后用數組的下限和上限重新定義。 然后使用循環,用所需的工作表和范圍填充每個數組條目,注意我需要使用工作表編號,而不是名稱,然后我可以填充整個數組,然后繼續執行代碼:
...
Dim Nbr_Students As Integer
Dim Counter As Integer
Dim i As Integer
Dim Student_Sheets As Variant
Nbr_Students = Sheets("Master Lists").Range("M3").Value - 1
Counter = 15
i = 0
ReDim RngArray(0 To Nbr_Students)
Do While i <= Nbr_Students
Set RngArray(i) = Worksheets(Counter).Range("C141:C157")
Counter = Counter + 1
i = i + 1
Loop
...
原帖: 鏈接
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.