0

我正在尝试使用 VBA 循环遍历 excel 中的表,并将每列的最大值存储在数组变量中以供以后在程序中使用。

我采取了许多类似于下面代码片段的方法,但都没有成功。供参考:mainTable是脚本前面定义的 Public ListObject 变量mainCols,也是之前定义的 Public Long 变量,它存储 的宽度mainTable

Dim maxVals() As Long
ReDim maxVals(mainCols)

For x = 0 To mainCols - 1
maxVals(x) = mainTable.ListColumns(x + 1).TotalsCalculation = xlTotalsCalculationMax
Next x

上面的代码执行没有错误,但总是返回0

重要的是我不对列/表位置进行硬编码,以便用户可以复制/粘贴不同维度的数据集并运行脚本而不会出错。此外,假设用户可以在具有他们想要的任何列标题的数据集上运行它。

4

1 回答 1

0

您的代码只是更改了表格总计行中使用的计算 - 它实际上并没有返回最大值。你可以使用:

Dim maxVals() As Long
ReDim maxVals(mainCols)

For x = 0 To mainCols - 1
maxVals(x) = WorksheetFunction.Max(mainTable.ListColumns(x + 1).Range)
Next x
于 2015-03-23T16:28:33.333 回答