Foreversoft.ru

IT Справочник
1 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Копирование файлов excel

Управление файлами из Excel

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

Все что для этого нужно – это приложение Excel с поддержкой языка программирования VBA (Visual Basic for Application) и надстройка, написанная на этом языке. Для осуществления действий с файлами, в диалоговом окне надстройки необходимо выбрать одну из доступных опций и указать диапазоны ячеек с полными именами файлов. Полным именем файла называется путь к этому файлу вместе с именем файла, включая расширение, например C:Program Files7-Zip7z.exe

Создание списка файлов

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

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

Копирование файлов

При копировании файлов необходимо иметь два списка полных имен, список со старыми именами и список с новыми именами. Старые имена – это текущие полные имена файлов, а новые имена – это имена файлов, но уже в новой папке, либо в новых папках, если папки разные. Например, чтобы скопировать файл «7z.exe» из папки C:Program Files7-Zip в папку D:Program Files7-Zip необходимо в одном списке указать старое имя C:Program Files7-Zip7z.exe, а в другом – новое имя D:Program Files7-Zip7z.exe. При этом изменяться может не только имя диска, а любая папка или несколько папок. Главное, чтобы все эти папки физически существовали на заданном диске.

В результате копирования исходные файлы остаются на своих местах, а их копии появляются в заданных папках. В случае, если кроме путей к файлам изменяются и имена файлов, то происходит одновременное копирование и переименование файлов.

Перемещение файлов

Перемещение файлов производится аналогично копированию, с той лишь разницей, что исходных файлов в исходных папках не остается, они перемещаются по новым адресам. Если в списке с новыми именами изменить и пути и имена, то одновременно с перемещением происходит и переименование файлов. В случае если пути остаются неизменными, а имена меняются, то происходит переименование файлов.

Удаление файлов

При удалении файлов список с новыми именами не требуется. Выделяется диапазон ячеек со старыми полными именами файлов и после пуска программы файлы этого списка удаляются. При этом к данной операции следует относиться с особой осторожностью, так как восстановить удаленные файлы из корзины не удастся.

Видео по работе с надстройкой

Как перемещать и копировать листы или их данные в Excel

В этом курсе:

Листы можно перемещать или копировать в пределах одной книги, чтобы упорядочить содержащиеся в ней данные.

С помощью команды Переместить или скопировать лист можно полностью переместить или скопировать листы в пределах одной или нескольких книг. Чтобы переместить или скопировать часть данных на другие листы или в другие книги, можно использовать команды Вырезать и Копировать.

Перемещение листа в книге

Щелкните ярлычок листа и перетащите его в нужное место.

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

Копирование листа в одной книге

Удерживая нажатой клавишу CTRL, перетащите ярлычок листа на нужное место.

Щелкните ярлычок листа правой кнопкой мыши и выберите команду Переместить или скопировать.

Установите флажок Создать копию.

В разделе перед листом укажите, куда вы хотите поместить копию.

Нажмите кнопку ОК.

Если данные требуется переупорядочить, можно менять порядок листов в книге, а также копировать и перемещать листы в другие книги. Обратите внимание на то, что после перемещения листа в вычислениях и на диаграммах, в основе которых лежат содержащиеся на нем данные, могут использоваться неправильные значения.

Перемещение листа

Перетащите ярлычок листа в нужное место в строке ярлычков.

Копирование листа

Нажмите и удерживайте клавишу OPTION.

Перетащите ярлычок листа в строке ярлычков в место, где нужно создать копию.

Важно: Отпустите сначала кнопку мыши, а затем — клавишу OPTION.

Перемещение листа в другую книгу

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

Читать еще:  Vba excel прервать выполнение макроса

Откройте книгу, в которую требуется переместить лист.

В меню Окно щелкните книгу, в которую входит перемещаемый лист.

Щелкните лист, который требуется скопировать в другую книгу.

В меню Правка выберите пункты Лист > Переместить или скопировать лист.

В меню В книгу выберите книгу, в которую требуется переместить лист.

Совет: Чтобы создать новую книгу и переместить в нее лист, выберите вариант новая книга.

В поле Перед листом выберите лист, перед которым нужно вставить перемещаемый лист, или вариант переместить в конец.

Нажмите кнопку ОК.

Копирование листа в другую книгу

Откройте книгу, в которую требуется скопировать лист.

В меню Окно щелкните книгу, в которую входит копируемый лист.

Выберите лист, который требуется скопировать.

В меню Правка выберите пункты Лист > Переместить или скопировать лист.

В меню В книгу выберите книгу, в которую требуется скопировать лист.

Совет: Чтобы создать новую книгу и переместить в нее лист, выберите вариант новая книга.

В поле Перед листом выберите лист, перед которым нужно вставить скопированный лист, или вариант переместить в конец.

Установите флажок Создать копию.

Нажмите кнопку ОК.

Изменение цвета ярлычка листа

Изменение цвета ярлычков листов может облегчить отслеживание информации в больших книгах.

Удерживая клавишу CONTROL, щелкните ярлычок листа.

Выберите команду Цвет ярлычка и укажите нужный цвет.

См. также

В Excel в Интернете вы можете дублировать (или скопировать) листы в текущей книге. Просто щелкните правой кнопкой мыши имя ярлычка в нижней части листа и выберите команду Дублировать.

Примечание: При дублировании листа, содержащего диаграмму, рисунок или фигуру, может появиться сообщение об ошибке. В этом случае лист можно продублировать вручную.

Если ваш лист содержит элементы, из-за которых его невозможно продублировать, можно создать его копию вручную, скопировав все данные и вставив их на новый лист. Вот как это сделать:

Выделите все данные на листе.

Сочетание клавиш: нажмите клавиши CTRL + ПРОБЕЛ, а затем нажмите клавиши Shift + пробел.

Скопируйте все данные на листе, нажав клавиши CTRL + C.

Щелкните знак плюса (+), чтобы добавить пустой лист.

Щелкните первую ячейку в новом листе и нажмите клавиши CTRL + V, чтобы вставить данные.

Примечание: При вставке ячеек на новый лист примененное к ним условное форматирование будет потеряно.

В Excel в Интернете возможность переместить или скопировать лист недоступна, если щелкнуть правой кнопкой мыши ярлычок листа, который находится в классическом приложении Excel. В Excel в Интернете вы можете добиться того же результата, скопировав все данные на листе и вставив его на пустой лист в другой книге.

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

Выделите все данные на листе.

Сочетание клавиш: нажмите клавиши CTRL + ПРОБЕЛ, а затем — клавиши Shift + пробел.

Скопируйте все данные на листе, нажав клавиши CTRL + C.

Откройте книгу, в которую необходимо вставить данные, и щелкните знак «плюс» ( +) в строке состояния, чтобы добавить новый пустой лист.

Щелкните первую ячейку в новом листе, а затем нажмите клавиши CTRL + V, чтобы вставить данные на этот лист.

Примечание: При вставке ячеек в другую книгу примененное к ним условное форматирование будет потеряно.

Дополнительные сведения

Вы всегда можете задать вопрос специалисту Excel Tech Community, попросить помощи в сообществе Answers community, а также предложить новую функцию или улучшение на веб-сайте Excel User Voice.

Примечание: Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Была ли информация полезной? Для удобства также приводим ссылку на оригинал (на английском языке).

Копирование файлов 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

Нашел макрос который копирует все файлы 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

Яндекс: 410016850021169

Ответить

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

Как скопировать и переместить лист Excel

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

В этой статье мы рассмотрим самые простые и популярные способы копирования и перемещения листов в Excel.

Как копировать лист в Excel без изменений

Скопировать лист можно несколькими способами.

Копия листа с помощью перетягивания

Пожалуй, самый простой способ копирования листа в Excel заключается в перетягивании ярлыка листа. Для этого:

  • Зажмите клавишу CTRL на клавиатуре
  • Зажмите и перетяните ярлык с листом Excel
  • Готово, копия листа создана.

Скопировать лист с помощью контекстного меню

Есть другой способ создания копии листа в Excel. Для этого проделайте следующие действия:

  • Кликните правой кнопкой мыши по ярлыку листа Excel
  • Во всплывающем меню выберите пункт “Переместить или скопировать…”:

  • Во всплывающем окне выберите расположение листа, а также поставьте галочку “Создать копию”, если хотите создать копию листа, а не просто переместить его:

Как скопировать лист Excel в другой файл

Для создания копии листа Excel в другой файл, нам нужно проделать похожие действия, описанные в статье выше.

  • Правой клавишей мыши кликните по ярлыку листа Excel
  • Во всплывающем меню выберите книгу Excel, в которую вы хотите скопировать лист
  • Выберите местоположение листа в новом файле
  • Нажмите “ОК”

Также, вы можете переместить лист Excel в другую книгу с помощью перемещения. Для этого зажмите левой клавишей мыши ярлык листа и переместите его в новую книгу.

Ссылка на основную публикацию
Adblock
detector