|
|
|
FileSearch в 2007-м офисе
|
|||
|---|---|---|---|
|
#18+
Уважаемые! А как быть с такой функцией в 2007-м офисе? FileSearch в нем не работает:( Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2009, 13:41 |
|
||
|
FileSearch в 2007-м офисе
|
|||
|---|---|---|---|
|
#18+
ну вот как-то так получилось: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2009, 14:36 |
|
||
|
FileSearch в 2007-м офисе
|
|||
|---|---|---|---|
|
#18+
Или лучше так: :) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2009, 14:44 |
|
||
|
FileSearch в 2007-м офисе
|
|||
|---|---|---|---|
|
#18+
гад:( а теперь он пишет: Run-time error '-2147319779 (8002801d)': Automation error Библиотека не зарегистрирована. Чего с этим делать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2009, 14:59 |
|
||
|
FileSearch в 2007-м офисе
|
|||
|---|---|---|---|
|
#18+
В Excel2007 метод .FileSearch хоть и есть в справке, но отключен. Работает Dir, но лучше использовать FileSystemObject с поздним связыванием: Dim fso As Object Set fso = CreateObject("Scripting.FileSystemObject") или с ранним связывание, как у Вас в коде, только нужно из VBE-Tools-References установить ссылку на Microsoft Scripting Runtime (файл scrrun.dll) Кроме того в Вашем коде: 1. AppPath нужно заменить на ThisWorkbook.Path т.к. VBA 2. iFile возвращает путь и имя файла, поэтому условие в цикле не сработает. Чтобы получить только имя используйте в условии iFile.Name ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2009, 16:42 |
|
||
|
FileSearch в 2007-м офисе
|
|||
|---|---|---|---|
|
#18+
Еще If CDate(D) = "0:00:00" не случится никогда, т.к. Cdate() как и D As Date означает, по-сути, число типа Double, а не String. И. наверное, имеет смысл прервать цикл, как только будет найдено совпадение: Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2009, 16:53 |
|
||
|
FileSearch в 2007-м офисе
|
|||
|---|---|---|---|
|
#18+
Для комплектности и вариант с Dir (путь и имя файла подправить) Код: plaintext 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2009, 17:00 |
|
||
|
FileSearch в 2007-м офисе
|
|||
|---|---|---|---|
|
#18+
ZVIДля комплектности и вариант с Dir (путь и имя файла подправить) Код: plaintext 1. 2. 3. 4. 5. 6. 7. Извиняюсь - наоборот. конечно: Dir("C:\Out\M11-*.xls") выдает пустую строку "" для которой Len()=0 в случае, если файл не найден. А если найден, то Dir() выдает имя файла, длина такой строки больше нуля. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2009, 00:34 |
|
||
|
FileSearch в 2007-м офисе
|
|||
|---|---|---|---|
|
#18+
Вообщем, спасибо. Вот, что получилось в итоге: Закомментированное пришлось убрать, т.к. требует подключить "Доверять доступ к объектной модели проектов VBA"... Как это будет у заказчика:( хрен знает. т.ч. обошелся без этого: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. Ну и далее: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. Что касается: ZVI Еще If CDate(D) = "0:00:00" не случится никогда, т.к. Cdate() как и D As Date означает, по-сути, число типа Double, а не String. Я исключаю только пустой аргумент, собственно. Если в CDate передать пустой аргумент, то получим "0:00:00". Я это и проверяю. Может можно и проще. Вроде как все работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2009, 15:44 |
|
||
|
FileSearch в 2007-м офисе
|
|||
|---|---|---|---|
|
#18+
ZVIВ Excel2007 метод .FileSearch хоть и есть в справке, но отключен. Работает Dir, но лучше использовать FileSystemObject с поздним связыванием: Dim fso As Object Set fso = CreateObject("Scripting.FileSystemObject") или с ранним связывание, как у Вас в коде, только нужно из VBE-Tools-References установить ссылку на Microsoft Scripting Runtime (файл scrrun.dll) Кроме того в Вашем коде: 1. AppPath нужно заменить на ThisWorkbook.Path т.к. VBA 2. iFile возвращает путь и имя файла, поэтому условие в цикле не сработает. Чтобы получить только имя используйте в условии iFile.Name ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2010, 19:50 |
|
||
|
|

start [/forum/topic.php?fid=61&msg=35893811&tid=2177568]: |
0ms |
get settings: |
5ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
166ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
30ms |
get tp. blocked users: |
1ms |
| others: | 194ms |
| total: | 418ms |

| 0 / 0 |
