КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Тестирование скорости чтения и записи диапазонов
Панель инструментов изменения числового формата ячейки Листинг 2.42. Код в модуле рабочего листа Sub Worksheet_Change(ByVal Target As Excel.Range) Call UpdateToolbar End Sub
Sub Worksheet_SelectionChange(ByVal Target As Excel.Range) Call UpdateToolbar End Sub Листинг 2.43. Код в стандартном модуле Sub FastChangeNumberFormat() Dim bar As CommandBar Dim button As CommandBarButton
' Удаление существующей панели инструментов (если она есть) On Error Resume Next CommandBars("Числовой формат").Delete On Error GoTo 0
' Формирование новой панели Set bar = CommandBars.Add With bar .Name = "Числовой формат" .Visible = True End With ' Создание кнопки Set button = CommandBars("Числовой формат").Controls.Add _ (Type:=msoControlButton) With button .Caption = "" .OnAction = "ChangeNumFormat" .TooltipText = "Щелкните для изменения числового формата" .Style = msoButtonCaption End With ' Обновление созданной панели инструментов Call UpdateToolbar End Sub
Sub UpdateToolbar() ' Обновление панели инструментов (если она создана) On Error Resume Next ' Изменение заголовка кнопки (на название формата выделенной ячейки) CommandBars("Числовой формат").Controls(1).Caption = _ ActiveCell.NumberFormat End Sub
Sub ChangeNumFormat() ' Отображение диалогового окна изменения формата ячейки Application.Dialogs(xlDialogFormatNumber).Show Call UpdateToolbar End Sub Листинг 2.44. Тестирование скорости чтения и записи диапазонов 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
Дата добавления: 2015-06-25; Просмотров: 266; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |