Excel VBA构造嵌套循环引用表

我有两个数据透视表从一些数据构造(没有相同的结构),我需要比较每个条目使用一些其他表的笛卡尔积。

我想在VBA中有一些嵌套的for循环,这些循环根据我构build的一些列表从数据透视表中获取数据。

我的清单:

+------+-----+ | Date | ID | +------+-----+ | 9/1 | 123 | | 9/2 | 124 | | 9/3 | 200 | | 9/4 | 201 | | | 202 | | | 300 | | | 500 | | | 999 | +------+-----+ 

我不知道如何引用这些列表中每个列中的每个条目在命令中使用它们。 我想到了以下内容:

 for each day in Date: for each num in ID: do_pivot_fetch(from pivot1, date=day, ID=num) 

如果这些列表是在Excel中维护的(这是我总是写这些东西的方式,那么在需要的时候可以很容易地改变参数),我通常使用do … while来迭代它们。 你也可以尝试在每一行中find最后一个被填充的单元格,并用它来计算for循环的范围,但是我发现在人们喜欢用excel电子表格的时候会出现这样的问题。

假设你在表格'Params'的列A(date)和B(ID)中有列表。 假设您在第1行中有标题,并且在每个列表中的最后一个值之后有空行。 那么你的代码看起来像这样:

 Sub useParams() Dim Date_val, ID_val As Range With ThisWorkbook.Worksheets("Params") Set Date_val = Range("A2") Do While Date_val.Value <> "" Set ID_val = Range("B2") Do While ID_val.Value <> "" //do_pivot_fetch(from pivot1, date=Date_val.Value, ID=ID_val.Value) Set ID_val = ID_val.Offset(1, 0) Loop Set Dateval = Date_val.Offset(1, 0) Loop End With End Sub