Excel как скопировать файлы по списку

Содержание

  1. Excel как скопировать файлы по списку
  2. Как быстро создать список файлов из папки и перенести в таблицу «Excel».
  3. Самый простой способ создания списка файлов, расположенных в папке.
  4. Перенос списка в программу Excel.
  5. Добавить комментарий Отменить ответ
  6. Excel как скопировать файлы по списку

Excel как скопировать файлы по списку

Здравствуйте.
Помогите сделать программу в VBA,которая будет искать файлы по таблице(файлы будут в папке до 3 уровня,лучше в корне диска D),а вставлять их нужно будет в новую папку которая будет создана или на рабочем столеили в той же директории.
Но есть несколько хитростей у этой задаче.(Поэтому в папке будет табличка с пробным задание[табл.V1],и 2 примера ее решения[Примеры результатов],а так же файлы по которым будет идти поиск[Layout] и там 3 подпапки[Blue];[White];[Yellow],а в них,в свою очередь есть еще подпапки от [98] до [164] с опред.интервалом). Сами файлы-изображение формата .tiff
СУТЬ В Том,что файлы в папки [Layout] неизменны,а по табличке [табл.V1] которая будет постоянно меняться,нужно будет создавать каждый раз новую папку с тем набором файлов,который указан в этой табл.
Будет постоянно происходить копирование файлов с одинаковым именем,можно просто подписывать датавремякопия1’копия2 или как вам будет легче,но в идеале чтобы файл имел имя=[свое имя+путь откуда он взялся],если их будет несколько,тогда имя=[свое имя+путь откуда он взялся]1;2;3и тд,но это по возможности.
если что то нетак,давай те я со своей стороны изменю,например конечные имена файлов и т.д.

А делать это нужно так,если напр. стоит цифра 1 напротив цвета White в табл. размера 110,тогда нужно сделать один белый комплект 110 размера,а это по одному файлу:1,2,3,4,5(т.е. эти 5 файлов образуют комплект)
НО очень важно,если таких комплектов нужно 2 и больше,тогда вместо файлов 3,4,5 нужно использовать 33,44,55(по сути это теже файлы,только спаринные),т.е. чтобы не кидать 2 файлы [3] нужно закинуть один файл [33]. Это делается для файлов 3,4,5, файлы 1 и 2 незаменяемые.

Т.е. если нужно закинуть BLUE размера 98 -3 шт.,тогда нужно закинуть из папки [LayoutBlue98] по 3 файлы [1],[2] и еще по одному [33,44,55] и еще [3,4,5].
Думаю, если посмотрите на пример,станет легче)

Здравствуйте.
Помогите сделать программу в VBA,которая будет искать файлы по таблице(файлы будут в папке до 3 уровня,лучше в корне диска D),а вставлять их нужно будет в новую папку которая будет создана или на рабочем столеили в той же директории.
Но есть несколько хитростей у этой задаче.(Поэтому в папке будет табличка с пробным задание[табл.V1],и 2 примера ее решения[Примеры результатов],а так же файлы по которым будет идти поиск[Layout] и там 3 подпапки[Blue];[White];[Yellow],а в них,в свою очередь есть еще подпапки от [98] до [164] с опред.интервалом). Сами файлы-изображение формата .tiff
СУТЬ В Том,что файлы в папки [Layout] неизменны,а по табличке [табл.V1] которая будет постоянно меняться,нужно будет создавать каждый раз новую папку с тем набором файлов,который указан в этой табл.
Будет постоянно происходить копирование файлов с одинаковым именем,можно просто подписывать датавремякопия1’копия2 или как вам будет легче,но в идеале чтобы файл имел имя=[свое имя+путь откуда он взялся],если их будет несколько,тогда имя=[свое имя+путь откуда он взялся]1;2;3и тд,но это по возможности.
если что то нетак,давай те я со своей стороны изменю,например конечные имена файлов и т.д.

А делать это нужно так,если напр. стоит цифра 1 напротив цвета White в табл. размера 110,тогда нужно сделать один белый комплект 110 размера,а это по одному файлу:1,2,3,4,5(т.е. эти 5 файлов образуют комплект)
НО очень важно,если таких комплектов нужно 2 и больше,тогда вместо файлов 3,4,5 нужно использовать 33,44,55(по сути это теже файлы,только спаринные),т.е. чтобы не кидать 2 файлы [3] нужно закинуть один файл [33]. Это делается для файлов 3,4,5, файлы 1 и 2 незаменяемые.

Т.е. если нужно закинуть BLUE размера 98 -3 шт.,тогда нужно закинуть из папки [LayoutBlue98] по 3 файлы [1],[2] и еще по одному [33,44,55] и еще [3,4,5].
Думаю, если посмотрите на пример,станет легче) олежа525

Сообщение Здравствуйте.
Помогите сделать программу в VBA,которая будет искать файлы по таблице(файлы будут в папке до 3 уровня,лучше в корне диска D),а вставлять их нужно будет в новую папку которая будет создана или на рабочем столеили в той же директории.
Но есть несколько хитростей у этой задаче.(Поэтому в папке будет табличка с пробным задание[табл.V1],и 2 примера ее решения[Примеры результатов],а так же файлы по которым будет идти поиск[Layout] и там 3 подпапки[Blue];[White];[Yellow],а в них,в свою очередь есть еще подпапки от [98] до [164] с опред.интервалом). Сами файлы-изображение формата .tiff
СУТЬ В Том,что файлы в папки [Layout] неизменны,а по табличке [табл.V1] которая будет постоянно меняться,нужно будет создавать каждый раз новую папку с тем набором файлов,который указан в этой табл.
Будет постоянно происходить копирование файлов с одинаковым именем,можно просто подписывать датавремякопия1’копия2 или как вам будет легче,но в идеале чтобы файл имел имя=[свое имя+путь откуда он взялся],если их будет несколько,тогда имя=[свое имя+путь откуда он взялся]1;2;3и тд,но это по возможности.
если что то нетак,давай те я со своей стороны изменю,например конечные имена файлов и т.д.

А делать это нужно так,если напр. стоит цифра 1 напротив цвета White в табл. размера 110,тогда нужно сделать один белый комплект 110 размера,а это по одному файлу:1,2,3,4,5(т.е. эти 5 файлов образуют комплект)
НО очень важно,если таких комплектов нужно 2 и больше,тогда вместо файлов 3,4,5 нужно использовать 33,44,55(по сути это теже файлы,только спаринные),т.е. чтобы не кидать 2 файлы [3] нужно закинуть один файл [33]. Это делается для файлов 3,4,5, файлы 1 и 2 незаменяемые.

Т.е. если нужно закинуть BLUE размера 98 -3 шт.,тогда нужно закинуть из папки [LayoutBlue98] по 3 файлы [1],[2] и еще по одному [33,44,55] и еще [3,4,5].
Думаю, если посмотрите на пример,станет легче) Автор — олежа525
Дата добавления — 23.01.2018 в 13:02

Источник

Как быстро создать список файлов из папки и перенести в таблицу «Excel».

Самый простой способ создания списка файлов, расположенных в папке.

Поделюсь простым проверенным способом создания списка файлов. Пошаговое руководство.

Шаг 1. Войти в папку список файлов из которой вы хотите сформировать.

Папка с файлами

Шаг 2. Кликнуть правой кнопкой по пустому полю в папке (не по файлу)

Создать текстовый документ

Шаг 3. Из выпадающего мену выбрать пункт «Создать»>> «Текстовый документ»

Шаг 4. Открыть появившийся текстовый документ и записать в него три строчки с кодом:

  • chcp 1251
  • echo From Ruexcel.ru %date% %time% >spisok_faylov.txt
  • dir /b /d >> spisok_faylov.txt

Записать код в текстовый документ

Шаг 5. Закрыть с сохранением документ. Закрыть документ с сохранением

Шаг 6. Переименовать расширение файла с «TXT» на «BAT» и нажать кнопку «Enter»

Переименовать файл в BAT

Шаг 7. Запустить полученный файл.

Запуск файла и результат

После запуска .bat файла в папке, из которой вы его запустили появится текстовый документ со списком файлов хранящихся в папке, который будет называться «spisok_faylov.txt».

Готовый список файлов

Перенос списка в программу Excel.

Шаг 1. Открыть текстовый документ.

Шаг 2. Выделить левой кнопкой мыши список.

Выделение списка

Шаг 3. Нажав правой кнопкой мыши по выделению выбрать пункт «Копировать»

Копирование перечня

Шаг 4. Открыть документ Excel.

Вставка в Excel

Шаг 5 Кликнуть правой кнопкой мыши в любую ячейку и выбрать из выпадающего меню пункт «Вставить»

Резултат копирования списка

Добавить комментарий Отменить ответ

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Источник

Excel как скопировать файлы по списку

И снова здравствуйте!

Пытаюсь макросом скопировать из папки «Откуда» (в т.ч. всех подпапках) в папку «Куда» файлы Excel по условию (наличию в названии символа, например «+»).

Нашел макрос который копирует все файлы Excel:
[vba]

Dim fso As Object, Folder As Object, iFile As Object, iPath$
iPath = «C:UsersМвидеоDesktopОткуда»
Set fso = CreateObject(«Scripting.FileSystemObject»)
Set Folder = fso.GetFolder(iPath)
For Each iFile In Folder.Files
If Right(iFile.Name, 5) = «.xlsx» Then iFile.Copy «C:UsersМвидеоDesktopКуда» & «» & iFile.Name
Next
Set iFile = Nothing
Set Folder = Nothing
Set fso = Nothing
End Sub

Но он не решает 2 вопроса:

1) Необходимо копирование файлов во всех подуровнях папки «Откда», т.е. пока берет верхний уровень только.

2) Необходимо копирование файлов Excel имя файлов которые содержат символ +

Первую часть даже не смог найти что-то подходящее как исправить.

Вторую часть попытался исправить 8 строку:
[vba]

Подскажите, пожалуйста, где нужно правильно допилить?

P.S. можете подсказать полезные ресурсы (на русском) со всеми кодами и их синтаксисами для обучения. Один нашел (ссылки на внешний ресурс нельзя выкладывать) но синтаксис выложен без примеров.

И снова здравствуйте!

Пытаюсь макросом скопировать из папки «Откуда» (в т.ч. всех подпапках) в папку «Куда» файлы Excel по условию (наличию в названии символа, например «+»).

Нашел макрос который копирует все файлы Excel:
[vba]

Dim fso As Object, Folder As Object, iFile As Object, iPath$
iPath = «C:UsersМвидеоDesktopОткуда»
Set fso = CreateObject(«Scripting.FileSystemObject»)
Set Folder = fso.GetFolder(iPath)
For Each iFile In Folder.Files
If Right(iFile.Name, 5) = «.xlsx» Then iFile.Copy «C:UsersМвидеоDesktopКуда» & «» & iFile.Name
Next
Set iFile = Nothing
Set Folder = Nothing
Set fso = Nothing
End Sub

Но он не решает 2 вопроса:

1) Необходимо копирование файлов во всех подуровнях папки «Откда», т.е. пока берет верхний уровень только.

2) Необходимо копирование файлов Excel имя файлов которые содержат символ +

Первую часть даже не смог найти что-то подходящее как исправить.

Вторую часть попытался исправить 8 строку:
[vba]

Подскажите, пожалуйста, где нужно правильно допилить?

P.S. можете подсказать полезные ресурсы (на русском) со всеми кодами и их синтаксисами для обучения. Один нашел (ссылки на внешний ресурс нельзя выкладывать) но синтаксис выложен без примеров. Anis625

Сообщение И снова здравствуйте!

Пытаюсь макросом скопировать из папки «Откуда» (в т.ч. всех подпапках) в папку «Куда» файлы Excel по условию (наличию в названии символа, например «+»).

Нашел макрос который копирует все файлы Excel:
[vba]

Dim fso As Object, Folder As Object, iFile As Object, iPath$
iPath = «C:UsersМвидеоDesktopОткуда»
Set fso = CreateObject(«Scripting.FileSystemObject»)
Set Folder = fso.GetFolder(iPath)
For Each iFile In Folder.Files
If Right(iFile.Name, 5) = «.xlsx» Then iFile.Copy «C:UsersМвидеоDesktopКуда» & «» & iFile.Name
Next
Set iFile = Nothing
Set Folder = Nothing
Set fso = Nothing
End Sub

Но он не решает 2 вопроса:

1) Необходимо копирование файлов во всех подуровнях папки «Откда», т.е. пока берет верхний уровень только.

2) Необходимо копирование файлов Excel имя файлов которые содержат символ +

Первую часть даже не смог найти что-то подходящее как исправить.

Вторую часть попытался исправить 8 строку:
[vba]

Подскажите, пожалуйста, где нужно правильно допилить?

P.S. можете подсказать полезные ресурсы (на русском) со всеми кодами и их синтаксисами для обучения. Один нашел (ссылки на внешний ресурс нельзя выкладывать) но синтаксис выложен без примеров. Автор — Anis625
Дата добавления — 16.01.2019 в 21:53

krosav4ig Дата: Среда, 16.01.2019, 22:47 | Сообщение № 2
email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Ответить

Anis625 Дата: Среда, 16.01.2019, 22:59 | Сообщение № 3

1 и 3 рекомендацию учел. Во 2-й не нашел отличий от своего варианта.

Запускаю макрос: Object required
=(

1 и 3 рекомендацию учел. Во 2-й не нашел отличий от своего варианта.

Запускаю макрос: Object required
=( Anis625

1 и 3 рекомендацию учел. Во 2-й не нашел отличий от своего варианта.

Запускаю макрос: Object required
=( Автор — Anis625
Дата добавления — 16.01.2019 в 22:59

krosav4ig Дата: Среда, 16.01.2019, 23:15 | Сообщение № 4

email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Anis625 Дата: Среда, 16.01.2019, 23:25 | Сообщение № 5

Крутяк. С «+» скопировал как надо. Я пока чайник по макросам. Пока не очень могу читать правильно макросы. Спасибо за правку.

Только макрос срабатывает на указанную папку. Внутри в подпапках не ищет макрос. Уровней может много.

Можете подсказать? В интернете подходящее не нашел

Крутяк. С «+» скопировал как надо. Я пока чайник по макросам. Пока не очень могу читать правильно макросы. Спасибо за правку.

Только макрос срабатывает на указанную папку. Внутри в подпапках не ищет макрос. Уровней может много.

Можете подсказать? В интернете подходящее не нашел Anis625

Крутяк. С «+» скопировал как надо. Я пока чайник по макросам. Пока не очень могу читать правильно макросы. Спасибо за правку.

Только макрос срабатывает на указанную папку. Внутри в подпапках не ищет макрос. Уровней может много.

Можете подсказать? В интернете подходящее не нашел Автор — Anis625
Дата добавления — 16.01.2019 в 23:25

Anis625 Дата: Среда, 16.01.2019, 23:25 | Сообщение № 6

Упс не заметил вашу ссылку

Упс не заметил вашу ссылку Anis625

Упс не заметил вашу ссылку Автор — Anis625
Дата добавления — 16.01.2019 в 23:25

Anis625 Дата: Среда, 16.01.2019, 23:33 | Сообщение № 7

Круууууто. Вот эту часть
[vba]

Dim coll As Collection, ПутьКПапке$, МаскаПоиска$, ГлубинаПоиска%

ПутьКПапке$ = [c1] ‘ берём из ячейки c1
МаскаПоиска$ = [c2] ‘ берём из ячейки c2
ГлубинаПоиска% = Val([c3]) ‘ берём из ячейки c3
If ГлубинаПоиска% = 0 Then ГлубинаПоиска% = 999 ‘ без ограничения по глубине

‘ считываем в колекцию coll нужные имена файлов
Set coll = FilenamesCollection(ПутьКПапке$, МаскаПоиска$, ГлубинаПоиска%)

если добавить в свою задачу было бы супер но сам поженить два макроса не смогу =(

Круууууто. Вот эту часть
[vba]

Dim coll As Collection, ПутьКПапке$, МаскаПоиска$, ГлубинаПоиска%

ПутьКПапке$ = [c1] ‘ берём из ячейки c1
МаскаПоиска$ = [c2] ‘ берём из ячейки c2
ГлубинаПоиска% = Val([c3]) ‘ берём из ячейки c3
If ГлубинаПоиска% = 0 Then ГлубинаПоиска% = 999 ‘ без ограничения по глубине

‘ считываем в колекцию coll нужные имена файлов
Set coll = FilenamesCollection(ПутьКПапке$, МаскаПоиска$, ГлубинаПоиска%)

если добавить в свою задачу было бы супер но сам поженить два макроса не смогу =( Anis625

Круууууто. Вот эту часть
[vba]

Dim coll As Collection, ПутьКПапке$, МаскаПоиска$, ГлубинаПоиска%

ПутьКПапке$ = [c1] ‘ берём из ячейки c1
МаскаПоиска$ = [c2] ‘ берём из ячейки c2
ГлубинаПоиска% = Val([c3]) ‘ берём из ячейки c3
If ГлубинаПоиска% = 0 Then ГлубинаПоиска% = 999 ‘ без ограничения по глубине

‘ считываем в колекцию coll нужные имена файлов
Set coll = FilenamesCollection(ПутьКПапке$, МаскаПоиска$, ГлубинаПоиска%)

если добавить в свою задачу было бы супер но сам поженить два макроса не смогу =( Автор — Anis625
Дата добавления — 16.01.2019 в 23:33

sboy Дата: Четверг, 17.01.2019, 09:56 | Сообщение № 8
Anis625 Дата: Четверг, 17.01.2019, 10:10 | Сообщение № 9

Спасибо Вам большое. Буду попробовать =)

Спасибо Вам большое. Буду попробовать =) Anis625

Спасибо Вам большое. Буду попробовать =) Автор — Anis625
Дата добавления — 17.01.2019 в 10:10

Anis625 Дата: Четверг, 17.01.2019, 19:09 | Сообщение № 10

Перепробовал разные варианты. Последний вариант sboy, даже на проверке макроса как есть без изменения у меня долго макрос отрабатывал мигая и потом завис Excel

Перепробовал разные варианты. Последний вариант sboy, даже на проверке макроса как есть без изменения у меня долго макрос отрабатывал мигая и потом завис Excel Anis625

Перепробовал разные варианты. Последний вариант sboy, даже на проверке макроса как есть без изменения у меня долго макрос отрабатывал мигая и потом завис Excel Автор — Anis625
Дата добавления — 17.01.2019 в 19:09

Anis625 Дата: Четверг, 17.01.2019, 19:11 | Сообщение № 11

Dim fso As Object, Folder As Object, iFile As Object, iPath$
iPath = «D:PQКопирование между папкамиОткуда»
Dim sFolder As String
With Application.FileDialog(msoFileDialogFolderPicker)
If .Show = False Then Exit Sub
sFolder = .SelectedItems(1)
End With
sFolder = sFolder & IIf(Right(sFolder, 2) = Application.PathSeparator, «», Application.PathSeparator)
Application.ScreenUpdating = False
Set fso = CreateObject(«Scripting.FileSystemObject»)
Set Folder = fso.GetFolder(iPath)
For Each iFile In Folder.Files
If iFile.Name Like «*+*.xls*» Then iFile.Copy «D:PQКопирование между папкамиКуда» & «» & iFile.Name
Next
Set iFile = Nothing
Set Folder = Nothing
Set fso = Nothing
End Sub

Dim fso As Object, Folder As Object, iFile As Object, iPath$
iPath = «D:PQКопирование между папкамиОткуда»
Dim sFolder As String
With Application.FileDialog(msoFileDialogFolderPicker)
If .Show = False Then Exit Sub
sFolder = .SelectedItems(1)
End With
sFolder = sFolder & IIf(Right(sFolder, 2) = Application.PathSeparator, «», Application.PathSeparator)
Application.ScreenUpdating = False
Set fso = CreateObject(«Scripting.FileSystemObject»)
Set Folder = fso.GetFolder(iPath)
For Each iFile In Folder.Files
If iFile.Name Like «*+*.xls*» Then iFile.Copy «D:PQКопирование между папкамиКуда» & «» & iFile.Name
Next
Set iFile = Nothing
Set Folder = Nothing
Set fso = Nothing
End Sub

Dim fso As Object, Folder As Object, iFile As Object, iPath$
iPath = «D:PQКопирование между папкамиОткуда»
Dim sFolder As String
With Application.FileDialog(msoFileDialogFolderPicker)
If .Show = False Then Exit Sub
sFolder = .SelectedItems(1)
End With
sFolder = sFolder & IIf(Right(sFolder, 2) = Application.PathSeparator, «», Application.PathSeparator)
Application.ScreenUpdating = False
Set fso = CreateObject(«Scripting.FileSystemObject»)
Set Folder = fso.GetFolder(iPath)
For Each iFile In Folder.Files
If iFile.Name Like «*+*.xls*» Then iFile.Copy «D:PQКопирование между папкамиКуда» & «» & iFile.Name
Next
Set iFile = Nothing
Set Folder = Nothing
Set fso = Nothing
End Sub

=( не срабатывает Автор — Anis625
Дата добавления — 17.01.2019 в 19:11

Источник

Adblock
detector

Если у вас есть список имен файлов в столбце на листе, и файлы находятся в папке на вашем компьютере. Но теперь вам нужно переместить или скопировать эти файлы, имена которых указаны на листе, из их исходной папки в другую, как показано на следующем снимке экрана. Как вы могли выполнить эту задачу так быстро, как вы можете в Excel?

Копируйте или перемещайте файлы из одной папки в другую на основе списка в Excel с кодом VBA


Копируйте или перемещайте файлы из одной папки в другую на основе списка в Excel с кодом VBA

Чтобы переместить файлы из одной папки в другую на основе списка имен файлов, следующий код VBA может оказать вам услугу, пожалуйста, сделайте следующее:

1. Удерживайте Alt + F11 ключи в Excel, и он открывает Microsoft Visual Basic для приложений окно.

2. Нажмите Вставить > Модулии вставьте следующий код VBA в окно модуля.

Код VBA: перемещать файлы из одной папки в другую на основе списка в Excel

Sub movefiles()
'Updateby Extendoffice
    Dim xRg As Range, xCell As Range
    Dim xSFileDlg As FileDialog, xDFileDlg As FileDialog
    Dim xSPathStr As Variant, xDPathStr As Variant
    Dim xVal As String
    On Error Resume Next
    Set xRg = Application.InputBox("Please select the file names:", "KuTools For Excel", ActiveWindow.RangeSelection.Address, , , , , 8)
    If xRg Is Nothing Then Exit Sub
    Set xSFileDlg = Application.FileDialog(msoFileDialogFolderPicker)
    xSFileDlg.Title = " Please select the original folder:"
    If xSFileDlg.Show <> -1 Then Exit Sub
    xSPathStr = xSFileDlg.SelectedItems.Item(1) & ""
    Set xDFileDlg = Application.FileDialog(msoFileDialogFolderPicker)
    xDFileDlg.Title = " Please select the destination folder:"
    If xDFileDlg.Show <> -1 Then Exit Sub
    xDPathStr = xDFileDlg.SelectedItems.Item(1) & ""
    For Each xCell In xRg
        xVal = xCell.Value
        If TypeName(xVal) = "String" And xVal <> "" Then
            FileCopy xSPathStr & xVal, xDPathStr & xVal
            Kill xSPathStr & xVal
        End If
    Next
End Sub

3, Затем нажмите F5 нажмите клавишу для запуска этого кода, и появится диалоговое окно с напоминанием о выборе ячеек, содержащих имена файлов, см. снимок экрана:

4. Затем нажмите OK и в появившемся окне выберите папку, содержащую файлы, из которых вы хотите переместиться, см. снимок экрана:

5, Затем нажмите OK, продолжайте выбирать папку назначения, в которой вы хотите найти файлы, в другом всплывающем окне, см. снимок экрана:

6, Наконец, нажмите OK чтобы закрыть окно, и теперь файлы были перемещены в другую папку, которую вы указали на основе имен файлов в списке листов, см. снимок экрана:

Внимание: Если вы просто хотите скопировать файлы в другую папку, но сохранить исходные файлы, примените приведенный ниже код VBA:

Код VBA: копирование файлов из одной папки в другую на основе списка в Excel

Sub copyfiles()
'Updateby Extendoffice
    Dim xRg As Range, xCell As Range
    Dim xSFileDlg As FileDialog, xDFileDlg As FileDialog
    Dim xSPathStr As Variant, xDPathStr As Variant
    Dim xVal As String
    On Error Resume Next
    Set xRg = Application.InputBox("Please select the file names:", "KuTools For Excel", ActiveWindow.RangeSelection.Address, , , , , 8)
    If xRg Is Nothing Then Exit Sub
    Set xSFileDlg = Application.FileDialog(msoFileDialogFolderPicker)
    xSFileDlg.Title = "Please select the original folder:"
    If xSFileDlg.Show <> -1 Then Exit Sub
    xSPathStr = xSFileDlg.SelectedItems.Item(1) & ""
    Set xDFileDlg = Application.FileDialog(msoFileDialogFolderPicker)
    xDFileDlg.Title = "Please select the destination folder:"
    If xDFileDlg.Show <> -1 Then Exit Sub
    xDPathStr = xDFileDlg.SelectedItems.Item(1) & ""
    For Each xCell In xRg
        xVal = xCell.Value
        If TypeName(xVal) = "String" And xVal <> "" Then
            FileCopy xSPathStr & xVal, xDPathStr & xVal
        End If
    Next
End Sub

Лучшие инструменты для работы в офисе

Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%

  • Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон
  • Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
  • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF
  • Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.

вкладка kte 201905


Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!

офисный дно

всем добрый вечер, если кто может помогите пжлс, срочно надо решить проблему. Есть макрос, который переносит данные с других листов, в которых указаны формулы, а мне необходимо копировать как значения. Макрос прилагаю. Что мне в нем необходимо исправить

Sub St()
‘Код рассчитан на то, что вид исходных таблиц сверху
‘и снизу меняться не будет. Т.е. жёстко прописано количество
‘дополнительных строк сверху и снизу.

Const fldr = «C:UsersнатаDesktopмакрос»  ‘ Путь к папке с файлами, можно добавить
                           ‘ стандартный диалог выбора папки или диалог
                           ‘ выбора самих файлов для обработки

                           Dim strFile As String, wb As Workbook, wsSum As Workbook

Application.ScreenUpdating = False  ‘нет мелькания на экране
Set wsSum = ThisWorkbook
strFile = Dir(fldr & «*.xlsx»)
Do While strFile <> «»          ‘Цикл по файлам

Set wb = Workbooks.Open(fldr & strFile, ReadOnly:=True)

   With wsSum.Sheets(1)
   iLastRow = .Cells(.Rows.Count, 2).End(xlUp).Row + 1
   .Cells(iLastRow, 1).Value = Now()
   Set tbl = wb.Sheets(1).Range(«A7»).CurrentRegion ‘ определяет именно таблицу
   tbl.Offset(1, 0).Resize(tbl.Rows.Count — 1, _
   tbl.Columns.Count).Copy .Range(.Cells(iLastRow, 2), .Cells(iLastRow, 2))

Оператор FileCopy поможет:

FileCopy полный_путь_к_файлу, путь_вставки_с_именем_файла 

Всего одна строка, но перед ней… Нужно копировать много файлов да по разным адресам, обойти ошибки, получить имя файла из полного пути…

' копирование файлов из списка по указанным папкам'
' строка 1 - "шапка", ст.A - имена файлов, ст. B - путь копирования'
' при отсутствии папки для копирования папка создается'
' Формируется список: файлов, которые не найдены; созданных папок'
' список выводится в столбцы D:F, информация: строка, папка/файл, путь'
Sub CopyFiles()
Dim aPath(), aErr()
Dim sFName As String
Dim lRw As Long
Dim i As Long, k As Long, n As Long
    With ActiveSheet ' или другой лист: With WorkSheets("ссылки")'
        lRw = .Cells(.Rows.Count, 1).End(xlUp).Row: If lRw < 2 Then Exit Sub
        aPath = .Range("A1:B" & lRw).Value ' имена и пути в массив'
    End With

    ReDim aErr(1 To lRw * 2, 1 To 3) ' массив для ошибок'
    Application.ScreenUpdating = False

    For i = 2 To lRw
        If Dir(aPath(i, 2), vbDirectory) = "" Then ' проверяем наличие папки для копирования'
            k = k + 1: aErr(k, 1) = i
            aErr(k, 2) = "папка": aErr(k, 3) = aPath(i, 2)
            MkDir aPath(i, 2)
        End If

        If Dir(aPath(i, 1), vbDirectory) = "" Then ' файла нет'
            k = k + 1: aErr(k, 1) = i
            aErr(k, 2) = "файл": aErr(k, 3) = aPath(i, 1)
        Else ' файл есть'
            sFName = Mid$(aPath(i, 1), InStrRev(aPath(i, 1), "")) ' извлекаем имя_файла'
            n = n + 1: FileCopy aPath(i, 1), aPath(i, 2) & sFName  ' копируем файл'
        End If
    Next i

    If k > 0 Then ActiveSheet.Cells(2, 4).Resize(k, 3).Value = aErr ' ошибки на лист'
    Application.ScreenUpdating = True
    MsgBox "Копировано файлов: " & n & Chr$(10) & "Ошибок: " & k, 64, "OK"
End Sub

введите сюда описание изображения

Примечание: наличие диска не проверяется. Если диск (например F) отсутсствует, получим ошибку. Если такое не исключается, нужно дописать проверку:

If Dir(Split(aPath(i, 2), ":")(0), vbDirectory) = "" Then 
...

Самый простой способ создания списка файлов, расположенных в папке.

Поделюсь простым проверенным способом создания списка файлов. Пошаговое руководство.

Шаг 1. Войти в папку список файлов из которой вы хотите сформировать.

Папка с файлами

Папка с файлами

Шаг 2. Кликнуть правой кнопкой по пустому полю в папке (не по файлу)

Создать текстовый документ

Создать текстовый документ

Шаг 3. Из выпадающего мену выбрать пункт «Создать»>> «Текстовый документ»

Шаг 4. Открыть появившийся текстовый документ и записать в него три строчки с кодом:

  • chcp 1251
  • echo  From Ruexcel.ru %date% %time% >spisok_faylov.txt
  • dir /b /d >> spisok_faylov.txt
    Записать код в текстовый документ
    Записать код в текстовый документ

Шаг 5. Закрыть с сохранением документ.

Закрыть документ с сохранением

Закрыть документ с сохранением

Шаг 6. Переименовать расширение файла с «TXT» на «BAT» и нажать кнопку «Enter»

Переименовать файл в BAT

Переименовать файл в BAT

Шаг 7. Запустить полученный файл.

Запуск файла и результат

Запуск файла и результат

После запуска .bat файла в папке, из которой вы его запустили появится текстовый документ со списком файлов хранящихся в папке, который будет называться «spisok_faylov.txt».

Готовый список файлов

Готовый список файлов

Перенос списка в программу Excel.

Шаг 1. Открыть текстовый документ.

Шаг 2. Выделить левой кнопкой мыши список.

Выделение списка

Выделение списка

Шаг 3. Нажав правой кнопкой мыши по выделению выбрать пункт «Копировать»

Копирование перечня

Копирование перечня

Шаг 4. Открыть документ Excel.

Вставка в Excel

Вставка в Excel

Шаг 5 Кликнуть правой кнопкой мыши в любую ячейку и выбрать из выпадающего меню пункт «Вставить»

Резултат копирования списка

Резултат копирования списка

Понравилась статья? Поделить с друзьями:

А вот еще интересные статьи:

  • Excel как скопировать только условное форматирование
  • Excel как скопировать только отфильтрованные строки в excel
  • Excel как скопировать только отфильтрованные данные
  • Excel как скопировать только заполненные ячейки
  • Excel как скопировать только группировки

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии