現在、ExcelでVBAでデータを正規化しようとしています。したがって、私のワークブックはいくつかのcsvファイルをインポートし、異なるワークシートでそれらを書きました。それらのすべてがこのように構築されています。VBA(Excel)でデータを高速化する高速方法
- 最初の行(プロットする)をX軸
- n番目の列の第2の列:ヘッダー
- 第1の列y値
今は2からすべての列を正規化します〜n(各列の最大値で割る)。ここに私がこれまで使用している関数は次のとおりです。
Sub NormalizeData(dataName)
cs = Worksheets(dataName).UsedRange.SpecialCells(xlCellTypeLastCell).Column
rs = Worksheets(dataName).UsedRange.SpecialCells(xlCellTypeLastCell).Row
For col = 2 To cs
maxValue = Application.WorksheetFunction.Max(Worksheets(dataName).Columns(col))
For r = 2 To rs
Worksheets(dataName).Cells(r, col) = Worksheets(dataName).Cells(r, col)/maxValue
Next r
Next col
End Sub
このアプローチは機能しますが、データ量が非常に遅いためです。速度を上げる方法はありますか?私はすでに画面の更新を切り替えました。
ご協力いただきありがとうございます。
あなたのサブのためにジョン・コールマンに感謝します。それはこれまでのところ素晴らしいです。あなたのアプローチとJanBのアプローチの利点は、空のワークシートは必要ないということです。 – Stefan