|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу. Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста". Название темы слишком короткое или не отражает сути вашего вопроса. Тема исчерпала себя, помните, один вопрос - одна тема Прочитайте правила и заново правильно создайте тему. |
|
Опции темы | Поиск в этой теме |
02.12.2007, 23:55 | #1 |
Пользователь
Регистрация: 27.07.2007
Сообщений: 10
|
Перенос нескольких файлов посредством VBA
Доброго времени суток!
Передо мной стоит задача, которую никак не могу решить. Суть заключается вот в чем: Имеется папка, в которую скидываются некоторое количество файлов. Необходимо раскидать файлы по папкам. Название каждого файла начинается на цифру, которая говорит о том в какую папку нужно скинуть файл.Оставшиеся файлы, название которых без цифр нужно скинуть в папку Misc. Пример: c:\income\0_cchk.day необходимо скинуть в c:\reports\0 c:\income\0_clch.d необходимо скинуть в c:\reports\0 c:\income\1_Bever.day необходимо скинуть в c:\reports\1 c:\income\1_clchk.d необходимо скинуть в c:\reports\1 c:\income\chckall.d необходимо скинуть в c:\reports\Misc c:\income\fiscal.log необходимо скинуть в c:\reports\Misc Ps: Проблема осложняется тем, что количество файлов всегда разное и название файлов иногда меняется. Pps: Нужен код, очень нужен. А то приходится кучу времени на бестолковую работу тратить... |
03.12.2007, 00:50 | #2 |
Форумчанин
Регистрация: 03.11.2006
Сообщений: 524
|
Код:
- папка "C:\Income" существует, если есть вероятность обратного, то достаточно проверить её наличие, например, с помощью функции Dir(iPath, vbDirectory) <> "" - папка "C:\Reports\" также существует, причём она содержит вложенные подпапки, как-то "Misc", "0", "1" и т.д. Наличие этой папки также можно предварительно проверить, а если необходимые, для копирования, подпапки могут отсутствовать, то их можно создать использовав инструкцию MkDir "C:\Reports\3" - подпапки не должны содержать файлов с именами аналогичными копируемым, в противном случае, Вы получите ошибку, которую можно избежать, если перед перемещением проверить существование файлов и в случае их обнаружения - удалить их. Для этого можно использовать инструкцию Kill, пример SetAttr "C:\Reports\1\MyFile.xls", vbNormal Kill "C:\Reports\1\MyFile.xls" |
05.12.2007, 00:48 | #3 |
Пользователь
Регистрация: 27.07.2007
Сообщений: 10
|
Не получается
К сожалению, я не силен в VBA, знаю его только на уровне записи макросов и разбора команд которые он записывает из екселя. Скорее всего я что-то не правильно делаю. Пробовал вставить код в новый модуль, запуская его ничего не происходит. Причем даже если нет папок, то ошибки не выдает. Пытался его повесить на кнопку в Excel, результат тот же... |
05.12.2007, 07:34 | #4 |
Форумчанин
Регистрация: 03.11.2006
Сообщений: 524
|
Проверил, работает. Но, как говорится, на всякий случай, протестируйте его на домашней машине, посмотрите совпадает ли Ваша версия с указаными в макросе. Кроме того, пошаговое выполнение инструкций (в редакторе VBA) F8 также может быть не лишним.
|
05.12.2007, 21:38 | #5 |
Форумчанин
Регистрация: 03.11.2006
Сообщений: 524
|
Виктор, Если Вы собираетесь перемещать не офисные файлы, то возможно имеет смысл воспользоваться необязательным свойством об'екта FileSearch, то бишь .FileType = msoFileTypeAllFiles (более подробно см.пример)
|
09.12.2007, 23:25 | #6 |
Пользователь
Регистрация: 27.07.2007
Сообщений: 10
|
Огромное спасибо Павел!
Теперь все работает. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Скопировать по одной ячейке из нескольких файлов в один | Nimo | Microsoft Office Excel | 2 | 09.08.2008 09:25 |
открытие нескольких файлов | valyan | Общие вопросы Delphi | 10 | 17.07.2008 20:27 |
Копирование нескольких файлов + ProgressBar | AngelOfDeath | Общие вопросы Delphi | 4 | 28.05.2008 14:57 |
Как получить имена нескольких файлов выделенных в OpenDialog | Comer_Jus | Общие вопросы Delphi | 2 | 26.05.2008 19:47 |