【问题标题】:Loop through table columns and store max or min values in array variable循环遍历表列并将最大值或最小值存储在数组变量中
【发布时间】:2015-05-26 17:17:02
【问题描述】:

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

我采取了许多类似于下面代码 sn-p 的方法,但没有成功。供参考:mainTable是脚本前面定义的Public ListObject变量,mainCols是Pubic 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

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

【问题讨论】:

    标签: arrays vba excel listobject


    【解决方案1】:

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

    Dim maxVals() As Long
    ReDim maxVals(mainCols)
    
    For x = 0 To mainCols - 1
    maxVals(x) = WorksheetFunction.Max(mainTable.ListColumns(x + 1).Range)
    Next x
    

    【讨论】:

      猜你喜欢
      • 2019-05-15
      • 1970-01-01
      • 1970-01-01
      • 2020-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-24
      • 2016-11-28
      相关资源
      最近更新 更多