Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
курсовая / Источники / excel_2010_professionalnoe_programmirovanie_na_vba_RuLit_Me_412629.pdf
Скачиваний:
4
Добавлен:
27.09.2025
Размер:
22.97 Mб
Скачать

Глава 11. Приемы и методы программирования на VBA

357

Таблица 11.1. Время сортировки (в секундах) для четырех алгоритмов, полученное для массивов с разным количеством элементов

Количество

Сортировка

Пузырьковая

Быстрая

Сортировка

элементов

на рабочем

сортировка

сортировка

методом пере­

в массиве

листе

VBA

VBA

счета VBA

100

0,03

0,00

0,00

0,03

500

0,05

0,03

0,00

0,03

1000

0,09

0,14

0,02

0,03

5000

0,27

3,28

0,03

0,03

10000

0,52

13,05

0,06

0,05

50000

2,41

317,20

0,31

0,11

100000

4,77

3204,30

0,70

0,19

Алгоритм пузырьковой сортировки относительно быстрый при работе с небольшими массивами, но его лучше не использовать с большими массивами (более 10 тысяч эле­ ментов). Алгоритмы быстрой сортировки и сортировки методом пересчета работают очень быстро, но ограничены типами данных I n te g e r и Long.

Обработка последовательности файлов

Одной из главных причин использования макросов является многократное повторе­ ние определенной операции. Пример из этого раздела показывает, как выполнить макрос в нескольких разных файлах, сохраненных на диске. Этот пример, который призван по­ мочь вам написать собственную программу выполнения задачи, запрашивает у пользова­ теля сведения о файле и обрабатывает соответствующие запросу рабочие книги. В рас­ сматриваемом случае обработка предусматривает импорт файла и ввод ряда формул суммирования, описывающих данные в файле.

Sub BatchProcess ()

 

 

Dim

F ile S p e c As

S trin g

Dim

i As In te g e r

 

Dim FileName As

S trin g

Dim

F ile L is t O

As

S trin g

Dim

F ou nd F ile s

As

In te g e r

'Определение пути и сведений о файле

FileSpec

=

T hisW orkbook. P ath

&

" \ " &

" t e x t ? ? . t x t "

FileName

=

D ir(F ile S p e c )

 

 

 

 

1 Найден

ли

файл?

 

 

 

 

 

I f FileName

<>

""

Then

 

 

 

 

F ou nd F ile s

= 1

 

 

 

 

 

ReDim

P reserve

F i le L i s t ( l

To

F ou nd F ile s)

F ile L is t(F o u n d F ile s )

= FileName

 

Else

 

 

 

 

 

 

 

 

 

MsgBox

"He

найдены требуемые

файлы

" & F ile S p e c

E x it Sub

 

 

 

 

 

 

 

End I f

 

 

 

 

 

 

 

 

 

1 Получить другие имена файлов

 

 

 

Do

 

 

=

D ir

 

 

 

 

 

FileName

 

 

 

 

 

I f

FileName

=

"" Then

E x it

Do