簡體   English   中英

Excel VBA中自動篩選的動態嵌套循環

[英]Dynamic Nested Loops for Autofilter in Excel VBA

我有一個程序設置來吐出一個特定的摘要。 現在,我要使用該程序,並允許它接受用戶輸入的范圍。 我將其降低到2個級別,但是從概念上講,盡管我正在使用3D數組存儲值,但要想進一步深入,就很難了。

遠離我的工作計算機,但它有點像

Dim array1(3) As String 'Fill it with some values like Group1, Group2, Group3...
Dim array2(4) As String 'Again the next level with some values like NY, PA,..., Total
Dim arVal(3,5,4) as Long 'For each Group 1, it will summarize 5 fields for each item in arr2

For i = LBound(array1) To UBound(array1)
   Autofilter based on array1
   For j = LBound(array2) to UBound(array2)
      If Not j = 4
          Autofilter based on array2
      EndIf
      arVal(i, 0, j) = Value
      arVal(i, 1, j) = Value
      ...
   Next j
Next i

我的一個想法是使用鏈接列表,其中將有第一個列表,每個后續列表將鏈接到列表中的每個節點。 唯一的問題是我僅在概念上了解了C ++中的鏈接列表,因此盡管這可能是一個解決方案,但我不知道如何在VBA中實現此功能。

加成:

array1 = {組1,組2,...。總計}
array2 = {東北,西部,東南....}
arVal(1,1,1)=對於東北地區第1組中的所有人,購買的土豆總和(值1)
arVal(1,1,2)=對於東北地區第1組內的所有人員,唯一的人數(值2)

然后繼續

arVal(1,2,1)=對於西部地區第1組中的所有人,馬鈴薯總和....
這樣,對於每個組,我想總結一下該組中的每個區域。

如果我要在區域下動態添加更多子類別,則會出現問題。

所以我想主要的問題是如果給定一個整數,以創建一個等於該整數的嵌套循環,使得:

If i = 2
{ For Each item in Group
     For Each item in Regions
         some function
}
If i = 3
{ For Each item in Group
     For Each item in Regions
        For Each item in NextSubcategory
           some function
}

盡管我可以限制子類別的數量並使用switch語句,但是如果程序是動態的,則程序會更健壯。 如果我嘗試使用多維數組存儲值,還要加上即將發生的動脈瘤。

在VBA中的“鏈接列表”主題上,這可能對您有用。

http://www.cpearson.com/excel/classes.aspx

然后,您可以遵循您在C ++中使用的方法來使用VBA類創建鏈接列表。

編輯:這也可能有助於鏈接

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM