Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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


Ответ
 
Опции темы
Старый 24.10.2011, 22:11   #1
Sprat
Форумчанин
 
Регистрация: 12.12.2010
Сообщений: 54
Репутация: -9
По умолчанию Почему 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,819
Репутация: 1220

icq: 5836318
skype: ExcelVBA.ru
По умолчанию

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 вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Автопересохранение книг с формата Excel 95 в формат Excel 2003 Toffifee Microsoft Office Excel 8 29.05.2011 17:36
Скорость исполнения макроса в Excel-2010 намного ниже, чем в Excel-2003 Павел+ Microsoft Office Excel 5 29.12.2010 04: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


15:55.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru