0

VBA を使用して Excel のテーブルをループ処理し、各列の最大値を配列変数に格納して、後でプログラムで使用できるようにしようとしています。

以下のコード スニペットに似た多くのアプローチを試みましたが、成功しませんでした。参考までに:mainTableは、スクリプトで以前に定義された Public ListObject 変数であり、同じく以前に定義された Public mainColsLong 変数であり、次の幅を格納します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

コードは、テーブルの Totals 行で使用される計算を変更するだけで、実際には最大値を返しません。あなたが使用することができます:

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 に答える