Книга: Excel. Трюки и эффекты
Тестирование скорости чтения и записи диапазонов
Тестирование скорости чтения и записи диапазонов
В процессе работы с электронными таблицами часто приходится переносить значения из массива в диапазон или из диапазона в массив. При этом скорость получения данных из диапазона обычно выше скорости записи. С помощью трюка, который мы сейчас рассмотрим, можно тестировать скорость записи данных массива в диапазон и переноса этих данных обратно в массив.
В стандартном модуле редактора VBA нужно написать код, содержимое которого представлено в листинге 2.42.
Листинг 2.42. Тестирование скорости чтения и записи диапазонов
Sub TableSpeedTest()
Dim alngData() As Long ' Массив с числами
Dim lngCount As Long ' Количество элементов в массиве
Dim dtStart As Date ' Хранит время (и даже дату)
начала _ тестирования
Dim strArrayToTable As String ' Время записи в таблицу
Dim strTableToArray As String ' Время чтения из таблицы
Dim strMessage As String
Dim i As Long
' Подготовка диапазона ячеек
Range(«A:A»).ClearContents
' Ввод размера массива, формирование массива заданного размера
lngCount = InputBox(«Введите количество элементов»)
ReDim alngData(1 To lngCount)
' Заполнение массива данными
For i = 1 To lngCount
alngData(i) = i
Next i
' Перенос массива в таблицу
Application.ScreenUpdating = False
dtStart = Timer
For i = 1 To lngCount
Cells(i, 1) = i
Next i
strArrayToTable = Format(Timer – dtStart, «00:00»)
' Чтение данных из таблицы обратно в массив
dtStart = Timer
For i = 1 To lngCount
alngData(i) = Cells(i, 1)
Next i
strTableToArray = Format(Timer – dtStart, «00:00»)
Application.ScreenUpdating = True
' Вывод на экран результатов тестирования
strMessage = "Запись: " & strArrayToTable & vbCrLf & _
"Чтение: " & strTableToArray
MsgBox strMessage, , lngCount & « элементов»
End Sub
В результате написания данного кода в окне выбора макросов появится макрос TableSpeedTest. После его запуска откроется окно, в котором в поле Введите количество элементов следует с клавиатуры ввести количество элементов и нажать кнопку ОК. По окончании работы макроса на экране отобразится окно, в котором будет показано время (в секундах), необходимое для записи данных массива в диапазон и для считывания их обратно в массив. Например, у одного из авторов этой книги на запись массива из 30 000 элементов было затрачено 17 секунд, а на считывание данных из диапазона обратно в массив – только 1 секунда; массив из 65 000 элементов записывался 37 секунд, а перенос этих данных обратно в массив занял лишь 2 секунды.
- Быстрое заполнение ячеек
- Автоматизация ввода данных в ячейки
- Ввод дробных чисел
- Сбор данных из разных ячеек
- Выделение диапазона над текущей ячейкой
- Поиск ближайшей пустой ячейки столбца
- Поиск максимального значения в диапазоне
- Автоматическая замена значений диапазона
- Засекречивание содержимого ячейки
- Всем ячейкам диапазона – одно значение
- Добавление в ячейку раскрывающегося списка
- Быстрое заполнение диапазона
- Гиперссылки – в виде обычного текста
- Помещение в ячейку электронных часов
- «Будильник»
- Поиск данных в диапазоне
- Создание цветной границы диапазона
- Автоматическое определение адреса ячейки
- Автоматизация добавления примечаний в указанном диапазоне
- Заливка диапазона
- Ввод строго ограниченных значений в указанный диапазон
- Последовательный ввод данных
- Быстрое выделение ячеек с отрицательными значениями
- Получение информации о выделенном диапазоне
- Кнопка для изменения числового формата ячейки
- Тестирование скорости чтения и записи диапазонов
- Тестирование Web-сервиса XML с помощью WebDev.WebServer.exe
- Разработка через тестирование и разработка с тестами
- 2. Пример создания базового отношения в записи на псевдокоде
- 3 Учетные записи пользователей
- Часть III. Шаблоны разработки через тестирование
- Приложение 1 Тестирование ПК при включении
- ГЛАВА 8 Блокировки чтения-записи
- Тестирование модема
- Качество ? Тестирование
- Как из-под учетной записи пользователя (без администраторских привилегий) включать и отключать оборудование и выполнять ...
- Листинг 9.4. Ограничение скорости загрузки медиафайлов в рабочее время
- 10.6. Гостевые учетные записи