В настоящее время я пытаюсь нормализовать данные с помощью VBA в Excel. Поэтому моя книга импортирует несколько файлов csv и записывает их в разные рабочие листы, все они построены следующим образом.Быстрый способ нормализации данных с помощью VBA (Excel)
- Первая строка: Заголовок
- Первой колонка: х-оси (для черчения)
- Второго столбца п-я колонка: 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
Этот подход работает, но из-за объема данных, это очень медленно. Есть ли способ увеличить скорость? Я уже включил обновление экрана.
Спасибо вам большое за вашу помощь !!!
John Coleman благодарит вас за ваш юнит. До сих пор он отлично работает. Преимущество вашего подхода и подхода JanB заключается в том, что вам не нужен пустой рабочий лист. – Stefan