Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.10.2011, 22:11   #1
Sprat
Пользователь
 
Регистрация: 12.12.2010
Сообщений: 54
По умолчанию Почему Excel 2010 выполняет поиск гораздо медленнее чем Excel 2003

Excel 2003 данную операцию проделывает за 1-2 секунды, а Excel 2011 за 1-2 минуты

Function GetFolderPath(Optional ByVal Title As String = "Выберите папку", Optional ByVal InitialPath As String) As String
GetFolderPath = "D:\Documents and Settings\" + Environ("USERNAME") + "\Application Data\Opera\Opera":
End Function
Function ReadFileNames(ByVal FolderPath As String)
On Error Resume Next
Set fso = CreateObject("scripting.filesystemo bject")
Set curfold = fso.GetFolder(FolderPath)
If Not curfold Is Nothing Then
For Each fil In curfold.Files
If fil.Name Like "*wand*" And fil.Name Like "*.dat" Then
Workbooks("Test.xls").Sheets("Work" ).Cells(1, 1).Value = fil.Path
End If
Next
For Each sfol In curfold.SubFolders
ReadFileNames sfol.Path
Next
Set fil = Nothing: Set curfold = Nothing: Set fso = Nothing:
End If
End Function
Sprat вне форума Ответить с цитированием
Старый 25.10.2011, 05:34   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

1) скорость в данном случае не зависит от версии Excel - а только от количества файлов в заданной папке

2) чтобы найти нужный файл, вовсе не обязательно перебирать все файлы
Код можно заметно сократить и упростить:
Код:
Sub test()
    Папка$ = Environ("APPDATA") & "\Opera\Opera\"
    ИмяФайла$ = Dir(Папка$ & "*wand*.dat")
    If ИмяФайла$ <> "" Then Workbooks("Test.xls").Sheets("Work").Cells(1, 1).Value = ИмяФайла$
End Sub
EducatedFool вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Автопересохранение книг с формата Excel 95 в формат Excel 2003 Toffifee Microsoft Office Excel 9 13.03.2020 15:33
Скорость исполнения макроса в Excel-2010 намного ниже, чем в Excel-2003 Павел+ Microsoft Office Excel 5 29.12.2010 03:28
Поиск значения по строго заданным условиям поиска (Excel 2003) Vladsgs Microsoft Office Excel 1 25.05.2010 14:53
В Excel 2010 макрос медленнее в 3 раза чем в 2007 Владимир. Microsoft Office Excel 12 22.05.2010 18:24
Как запретить запуск программы на VBA Excel 2003 в Excel 2007 kovalevskivf Microsoft Office Excel 2 15.05.2009 16:47