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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.04.2010, 04:57   #1
balanenko
Новичок
Джуниор
 
Регистрация: 16.04.2010
Сообщений: 1
По умолчанию Не работает трафаретный символ

Уважаемые форумчане!
Подскажите, пожалуйста, почему в макросе не работает звездочка (*)
Пишу код:

Sub откр()
Workbooks.Open Filename:="D:\магазины\154_16.04.10 \15420100415_KRO.xls"
End Sub

Файл отрывается без проблем, а если вставляю "*" вместо "15420100415" уже не работает:

Sub откр()
Workbooks.Open Filename:="D:\магазины\154_16.04.10 \*_KRO.xls"
End Sub

Может существует какой-то иной способ замены символов в VBA?
balanenko вне форума Ответить с цитированием
Старый 16.04.2010, 06:06   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
Подскажите, пожалуйста, почему в макросе не работает звездочка (*)
Встречный вопрос - а почему она должна работать?

Метод Workbooks.Open принимает в качестве параметра имя файла.


вот это - "D:\магазины\154_16.04.10 \15420100415_KRO.xls" - является именем файла
а это - "D:\магазины\154_16.04.10 \*_KRO.xls" - не имя файла, а маска для поиска файлов.
Чувстуете разницу?

Цитата:
Может существует какой-то иной способ замены символов в VBA?
Существует.
Что именно надо сделать?
Открыть файл, подходящий под маску "D:\магазины\154_16.04.10 \*_KRO.xls"?
А что делать в том случае, если подходящих файлов 2 или больше? Который из них открывать?

Можно попробовать так:
Код:
Sub откр()
    Папка = "D:\магазины\154_16.04.10\"
    ИмяФайла = Dir(Папка & "*_KRO.xls")
    If ИмяФайла = "" Then Exit Sub    ' выход, если нет подходящего файла
    Workbooks.Open Папка & ИмяФайла
End Sub

Последний раз редактировалось EducatedFool; 16.04.2010 в 06:09.
EducatedFool вне форума Ответить с цитированием
Старый 16.04.2010, 09:57   #3
Alex_ST
Пользователь
 
Аватар для Alex_ST
 
Регистрация: 04.12.2009
Сообщений: 28
По умолчанию

В справке вроде бы написано, что при обнаружении в заданной директории (папке) нескольких файлов, соответствующих маске (трафарету), Dir возвращает имя первого подходящего (Dir returns the first file name that matches pathname).
Но при этом далее указано, что Dir возвращает имена не по порядку (Tip Because file names are retrieved in no particular order, you may want to store returned file names in an array, and then sort the array).
Так какое же имя будет возвращено? Первое, указанное в FAT?
Alex_ST вне форума Ответить с цитированием
Старый 16.04.2010, 11:54   #4
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Цитата:
Так какое же имя будет возвращено?
А что Вы понимаете под "порядком" файлов в папке. Файлы в папке могут располагаться по разному, в зависимости от того, что выбрал пользователь в качестве "упорядочения". Это только отображение. Файлы в папке никто не перемещает. Организуйте цикл с перебором всех файлов в указанной папке по маске и добавьте еще одно сравнение получаемого файла с тем, что Вам нужно.
Интересно узнать, а зачем Вам это нужно? Это имеет смысл, когда требуется выбрать несколько файлов. Если же нужно выбрать конкретный (известный) файл, то использование маски ни к чему. А если имя файла полностью не известно, и файлов, удовлетворяющих маске несколько, то с чем сравнивать?
Чем шире угол зрения, тем он тупее.

Последний раз редактировалось SAS888; 16.04.2010 в 11:59.
SAS888 вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удалить символ alerzo Помощь студентам 1 06.03.2010 20:03
Символ Paul_AG Общие вопросы C/C++ 4 03.06.2009 21:06
TP7 чтение из файла, работает но не работает!? Qousio Помощь студентам 7 02.06.2009 09:37
Библиотека НЕ работает с 2008, но работает с 2000 SQL namenike Общие вопросы C/C++ 0 26.05.2009 11:04
Непечатный символ Родион Общие вопросы Delphi 3 09.10.2008 15:17