|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
07.04.2011, 01:16 | #1 |
Пользователь
Регистрация: 07.04.2011
Сообщений: 13
|
Макрос - поиск самого нового файла
Здравствуйте,
создал в Excel макрос с кнопкой, который находит в строго определенном каталоге файл *.csv и затем специальным образом импортирует его содержимое в excel. Но тут вспомнил, что версий таких файлов *.csv в этом каталоге может быть несколько (*.csv (1), *.csv (2), *.csv (3) и т.д.), а для макроса нужна самая последняя. Может ли кто-то подсказать, как макрос может найти самую свежую (по дате)? Сразу поясню, что с макросами знаком почти целых 50 минут и разбираюсь в них, можете себе представить, очень и очень .... Так что очень прошу объяснить, как установить затем это чудо. Сердечно благодарен! |
07.04.2011, 05:48 | #2 |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
Можно, например, так:
Код:
Чем шире угол зрения, тем он тупее.
Последний раз редактировалось SAS888; 07.04.2011 в 05:51. |
07.04.2011, 06:44 | #3 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,856
|
http://excelvba.ru/code/LastFile
В вашем случае эту функцию можно использовать так: (чтобы получить полный путь к самому новому файлу) Код:
|
07.04.2011, 18:54 | #4 |
Пользователь
Регистрация: 07.04.2011
Сообщений: 13
|
а куда занести то, что Вы предложили?
Огромное всем спасибо!!!
А как и куда записать это, если сам макрос, например, выглядит следующим образом: Sub Макрос 1 () ' ' Макрос 1 Макрос ' Макрос записан 07.04.2011 (IM) ' ' Сочетание клавиш: Ctrl+a ' With ActiveSheet.QueryTables.Add(Connect ion:= _ "TEXT;C:\Users\Inna\Downloads\55.cs v", Destination:=Range("A1")) .Name = "55" .FieldNames = True .RowNumbers = False .FillAdjacentFormulas = False .PreserveFormatting = True .RefreshOnFileOpen = False .RefreshStyle = xlInsertDeleteCells .SavePassword = False .SaveData = True .AdjustColumnWidth = True .RefreshPeriod = 0 .TextFilePromptOnRefresh = False .TextFilePlatform = 866 .TextFileStartRow = 2 .TextFileParseType = xlDelimited .TextFileTextQualifier = xlTextQualifierDoubleQuote .TextFileConsecutiveDelimiter = False .TextFileTabDelimiter = False .TextFileSemicolonDelimiter = False .TextFileCommaDelimiter = True .TextFileSpaceDelimiter = False .TextFileColumnDataTypes = Array(1, 1, 1, 1, 1) .TextFileTrailingMinusNumbers = True .Refresh BackgroundQuery:=False End With End Sub |
07.04.2011, 20:31 | #5 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,856
|
Как-то так:
Код:
Если вы вручную это делаете, - значит, и макросу это под силу... |
07.04.2011, 20:49 | #6 |
Пользователь
Регистрация: 07.04.2011
Сообщений: 13
|
Спасибо
Сейчас попробую и напишу результат. |
07.04.2011, 21:27 | #7 |
Пользователь
Регистрация: 07.04.2011
Сообщений: 13
|
Не выполняется.
Я ошибся, версия файла указывается в скобках сразу после самого имени файла, а не расширения (1,2,3,4 и т.д.) У меня этот файл называется "Список заказов-export(),csv" Но все равно не идет. Я написал: Sub Макрос1() ' ищем файл СамыйСвежийФайл$ = LastFile$("C:\Users\Inna\Downloads\Список заказов-export*.csv") ' выполняем веб-запрос With ActiveSheet.QueryTables.Add(Connect ion:="TEXT;" & СамыйСвежийФайл$, Destination:=Range("A1")) .Name = "Список заказов-export*" .FieldNames = True .RowNumbers = False .FillAdjacentFormulas = False .PreserveFormatting = True .RefreshOnFileOpen = False .RefreshStyle = xlInsertDeleteCells .SavePassword = False .SaveData = True .AdjustColumnWidth = True .RefreshPeriod = 0 .TextFilePromptOnRefresh = False .TextFilePlatform = 866 .TextFileStartRow = 2 .TextFileParseType = xlDelimited .TextFileTextQualifier = xlTextQualifierDoubleQuote .TextFileConsecutiveDelimiter = False .TextFileTabDelimiter = False .TextFileSemicolonDelimiter = False .TextFileCommaDelimiter = True .TextFileSpaceDelimiter = False .TextFileColumnDataTypes = Array(1, 1, 1, 1, 1) .TextFileTrailingMinusNumbers = True .Refresh BackgroundQuery:=False End With End Sub |
07.04.2011, 22:08 | #8 | |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,856
|
Цитата:
(если, конечно, хотите, чтобы макрос работал) Обратите внимание - у функции 2 параметра, а вы всё в один слепили... Для начала запустите такой макрос - и скажите, что выводится в сообщении: Код:
|
|
07.04.2011, 22:46 | #9 |
Пользователь
Регистрация: 07.04.2011
Сообщений: 13
|
Спасибо.
Посмотрите во вложении, что пишет в ответ... |
07.04.2011, 23:28 | #10 | |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,856
|
Цитата:
Наверное, для того, чтобы вы код функции скопировали в свой файл... В итоге, ваш макрос будет выглядеть так: Код:
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Поиск самого дешёвого пути. Волновой алгоритм | girlbuuuger | Помощь студентам | 16 | 13.02.2012 20:39 |
Поиск самого короткого слова в тексте | ZevS13 | Общие вопросы C/C++ | 3 | 07.06.2011 12:34 |
Поиск наименьшего и самого редкоповторяющегося числа в Memo (Delphi) | giga_person | Помощь студентам | 5 | 21.03.2010 19:20 |
Поиск самого часто встречаемого текста в столбце таблицы | Marsel737 | Общие вопросы Delphi | 2 | 18.03.2010 23:48 |
Макрос для создания нового листа в др.книге | natty29 | Microsoft Office Excel | 3 | 14.02.2009 06:46 |