|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
15.04.2009, 19:03 | #1 |
Форумчанин
Регистрация: 21.04.2008
Сообщений: 110
|
как по макросу скопировать название имени фала в ячейку??
в определенной папке есть файл у которого постоянно обновляется имя "файл_1" .. новая версия "файл_2" .. еще более новая "файл_3" и т.д. есть другой файл, который вытягивает из него определенную инфу.
данные, которые вытягиваются во второй файл вытягиваются посредством банального ВПР(), ГПР() и ПОИСКПОЗ() - в данной ситуации это наиболее удобно. так вот, в эти функции ищут диапазоны из которых надо вытягивать данные через ДВССЫЛ в которой прописывается имя файла. вопрос - как через макрос можно обновлять это имя?? т.е. надо чтобы при открытии, к примеру, ексель шел в определенную папку находил файл со словами в имени "файл", копировал имя файла полностью и вставлял в определенную ячейку в книге, после чего открывал эту книгу. |
15.04.2009, 23:16 | #2 |
Форумчанин
Регистрация: 03.04.2009
Сообщений: 412
|
Попробуйте так:
Sub Workbook_Open() Dim i As Long, z As Long, ws As Worksheet, y As Variant Dim fLdr As String y = ".xls" z = 1 fLdr = "C:\Мои документы" Columns("A:A").Select Selection.ClearContents Range("A1").Select With Application.FileSearch .NewSearch .LookIn = fLdr .SearchSubFolders = True .Filename = y If .Execute() > 0 Then For i = 1 To .FoundFiles.Count If Left$(.FoundFiles(i), 1) = Left$(fLdr, 1) Then z = z + 1 Лист1.Cells(z + 1, 1).Resize(, 1) = Array(Dir(.FoundFiles(i))) End If Next i End If End With Columns("A:A").Select Selection.Sort Key1:=Range("A1"), Order1:=xlDescending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _ DataOption1:=xlSortNormal Range("A1").Select Workbooks.Open Filename:="C:\Мои документы\" & Range("A1") End Sub ЗЫ: Вместо C:\Мои документы укажите путь к папке, где лежат "файл_1" .. новая версия "файл_2". Макрос ищет все файлы с расширением .xls в указанной папке и записывает их в столбец А на Лист1, сортирует и в ячейке А1 получаем "старший" файл, который открывается. Маленький нюанс: количество цифр в имени файла д.б. одинаковым для правильной сортировки. Т.е., если файлов больше 9 но меньше 100 имена должны начинаться с "файл_01". Последний раз редактировалось pivas; 15.04.2009 в 23:24. Причина: Маленький нюанс |
16.04.2009, 06:09 | #3 |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
Метод FileSearch лучше не использовать. Microsoft считает его неперспективным и с версии 2007 он отключен.
Можно существенно проще: Код:
Чем шире угол зрения, тем он тупее.
Последний раз редактировалось SAS888; 16.04.2009 в 06:17. |
16.04.2009, 10:31 | #4 |
Форумчанин
Регистрация: 21.04.2008
Сообщений: 110
|
2 SAS888
по поводу FileSearch - да, отключен .. я нашел примерчик с поиском файла по маске, но он у мена на седьмом экселе дает ошибку на FileSearch - пишет не поддерживается. собсно поэтому сюда и обратился. а как сделать чтобы копировало только имя?? мне сам путь не нужен. |
16.04.2009, 10:54 | #5 |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
Строку кода
Код:
Код:
Чем шире угол зрения, тем он тупее.
|
16.04.2009, 11:28 | #6 |
Форумчанин
Регистрация: 21.04.2008
Сообщений: 110
|
2 SAS888
работает!! спасибо! |
16.04.2009, 20:58 | #7 |
Форумчанин
Регистрация: 03.04.2009
Сообщений: 412
|
SAS888, можно ли подобным образом получить список всех файлов в папке с расширением .xls?
|
16.04.2009, 21:04 | #8 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
Код:
|
16.04.2009, 21:16 | #9 |
Форумчанин
Регистрация: 03.04.2009
Сообщений: 412
|
Бесподобно. Преклоняюсь перед мастерством.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Надо найти функцию, По вводимой в ячейку дате рождения показать название соответствующего знака Зодиака. | Incognitoal | Microsoft Office Excel | 13 | 03.03.2009 08:18 |
Как записать в ячейку название киги | oks27 | Microsoft Office Excel | 2 | 24.02.2009 13:37 |
Скопировать строку, содержащую активную ячейку. | Iren | Microsoft Office Excel | 14 | 10.10.2007 12:19 |
как скопировать? | zetrix | Microsoft Office Excel | 0 | 30.10.2006 18:52 |