Remkomplekty.ru

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

Excel vba копирование файлов

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

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

Если в книге есть макрос Visual Basic для приложений (VBA), который вы хотите использовать в другом месте, вы можете скопировать модуль, содержащий этот макрос, в другую открытую книгу с помощью редактора Visual Basic (VBE).

Макросы и средства VBA находятся на вкладке Разработчик, которая по умолчанию скрыта, поэтому сначала нужно включить ее.

В Windowsперейдите в раздел Параметры _Гт_ файла _гт_ настроить ленту.

Для Macперейдите на вкладку _Гт_ параметры Excel. _гт_ ленты _амп_ Toolbar.

Затем в разделе Настройка ленты в разделе Основные вкладкиустановите флажок разработчик .

Общие сведения о макросах и языке VBA

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

Макрос — это Макрокоманда или набор действий, которые можно использовать для автоматизации задач.

Вы можете записывать макросы с помощью команды » записать макрос » на вкладке » разработчик «.

Макросы записываются на языке программирования VBA.

Вы можете просматривать и редактировать макросы в редакторе Visual Basic — окне, которое открывается в Excel. Ниже приведен пример окна VBE для Windows:

Макросы с именами сделатьячейкузеленой и установитьвысотустроки находятся в модуле с именем Module1, который хранится в Книга1.

Копирование модуля из одной книги в другую

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

На вкладке разработчик нажмите кнопку Visual Basic , чтобы открыть Редактор Visual Basic.

В редакторе Visual Basic в меню вид выберите пункт Обозреватель проектов или нажмите клавиши CTRL + R .

В области » Обозреватель проектов » перетащите модуль с макросом, который вы хотите скопировать в конечную книгу. В данном случае мы копируем Module1 из book2. xlsm в Книга1. xlsm.

Module1 копируется из book2. xlsm

Копия Module1 скопирована в Книга1. xlsm

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

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

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

Можно ли с помощью VBA сделать следующее:
Необходимо в папке с помощью поиска находить файл pdf формата и копировать его в другую папку.
Если не с помощью VBA, то с помощью чего можно это реализовать?

Заранее большое спасибо!

Макрос . Копирование и перенос Листов из чужой папки
Всем доброго времени На рабочем столе есть папка "Papka1" В этой папке есть excel-книга.

Копирование и перенос значения ячейки через специальную вставку
Имеется сумма значений столбца, прописанная в ячейке I24 как =СУММ($I$4:$I$23) нужно при.

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

Копирование ТХТ файлов с определенным текстом
Всем доброго времени суток! Подскажите, пожалуйста, задача такая: в папке найти все тхт файлы в.

тогда замените ее на это

If Right(iFile.Name, 4) = «.pdf» Then iFile.Copy «c:имя папки» & «» & iFile.Name

внимательно смотрите
слеш между путем к папке и ifile .name

Добавлено через 44 секунды
еще — папка должна существовать

Добавлено через 5 минут
блин — вы чего творите

Добавлено через 26 секунд
это пипец.

Добавлено через 1 минуту
слов нет
ставите условие скопировать все pdf-файлы — вам дают код

Добавлено через 1 минуту
ДЛЯ ВСЕХ PDF ФАЙЛОВ
и вы модернизируете код под себя под конкретный файл и потом говорите что не работает
все — я пас

посимвольно сравните то что вам дали и то что вы написали
и когда найдете недостающий амперсанд.

Добавлено через 1 минуту
это первое
второе
почему изменен код
вот тут

вы код пробовали

Добавлено через 24 секунды
папка должна быть создана до выполнения кода

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Копирование определенной строки из файлов в папке
Добрый день, уважаемые! Подскажите пожалуйста макрос. Есть папка, в которой лежат книги экселя.

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

Читать еще:  Vba excel сортировка таблицы

Перенос данных из файлов Word в Excel
Добрый день! В общем задача следующего типа. В папке хранятся файлы MS Word c данными о.

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

Как средствами VBA переименовать/переместить/скопировать файл

В этой статье я хотел бы рассказать как средствами VBA переименовать, переместить или скопировать файл. В принципе методы переименования, перемещения и копирования, так сказать, встроены в VBA. Это значит что можно без вызова сторонних объектов переименовать, переместить или копировать любой файл. Все это делается при помощи всего двух команд: FileCopy и Name [Исходный файл] As [Новый файл] . Притом команда FileCopy выполняет только копирование, а Name [Исходный файл] As [Новый файл] — как переименование, так и перемещение. Разница лишь в том, что при переименовании мы указываем только новое имя файла, а при перемещении — другую директорию(папку), в которую следует переместить файл. И в дополнение я приведу пример удаления файла. Теперь можно рассмотреть несложные примеры использования этих команд:

Sub Copy_File() Dim sFileName As String, sNewFileName As String sFileName = «C:WWW.xls» ‘имя файла для копирования sNewFileName = «D:WWW.xls» ‘имя копируемого файла. Директория(в данном случае диск D) должна существовать If Dir(sFileName, 16) = «» Then MsgBox «Нет такого файла», vbCritical, «Ошибка»: Exit Sub FileCopy sFileName, sNewFileName ‘копируем файл MsgBox «Файл скопирован», vbInformation, «www.excel-vba.ru» End Sub

Sub Move_File() Dim sFileName As String, sNewFileName As String sFileName = «C:WWW.xls» ‘имя исходного файла sNewFileName = «D:WWW.xls» ‘имя файла для перемещения. Директория(в данном случае диск D) должна существовать If Dir(sFileName, 16) = «» Then MsgBox «Нет такого файла», vbCritical, «Ошибка»: Exit Sub Name sFileName As sNewFileName ‘перемещаем файл MsgBox «Файл перемещен», vbInformation, «www.excel-vba.ru» End Sub

Sub Rename_File() Dim sFileName As String, sNewFileName As String sFileName = «C:WWW.xls» ‘имя исходного файла sNewFileName = «C:WWW1.xls» ‘имя файла для переименования If Dir(sFileName, 16) = «» Then MsgBox «Нет такого файла», vbCritical, «Ошибка»: Exit Sub Name sFileName As sNewFileName ‘переименовываем файл MsgBox «Файл переименован», vbInformation, «www.excel-vba.ru» End Sub

Sub Delete_File() Dim sFileName As String sFileName = «C:WWW.xls» ‘имя файла для удаления If Dir(sFileName, 16) = «» Then MsgBox «Нет такого файла», vbCritical, «Ошибка»: Exit Sub Kill sFileName ‘удаляем файл MsgBox «Файл удален», vbInformation, «www.excel-vba.ru» End Sub

Вот так. Вроде ничего сложного.

Так же я хотел бы описать как можно проделать те же операции с файлами при помощи объекта FileSystemObject. Строк кода несколько больше и выполняться операции будут медленнее(хотя вряд ли это будет заметно на примере одного файла). Но раз начал разбирать эту тему — решил показать и эти методы. Прежде всего следует, я думаю, пояснить что за зверь такой — FileSystemObject.
FileSystemObject (FSO) — содержится в библиотеке типов Scripting, расположенной в файле библиотеки scrrun.dll. Объектная модель FSO дает возможность создавать, изменять, перемещать и удалять папки и файлы, собирать о них различную информацию: имена, атрибуты, даты создания или изменения и т.д. Чтобы работать с FSO необходимо создать переменную со ссылкой на объект библиотеки. Сделать это можно двумя способами: через ранее связывание и позднее. Я не буду сейчас вдаваться в подробности этих методов — тема довольно обширная и я опишу её в другой статье.
Ранее связывание: для начала необходимо подключить библиотеку Microsoft Scripting Runtime. Делается это в редакторе VBA: References-находите там Microsoft Scripting Runtime и подключаете. Объявлять переменную FSO при раннем связывании следует так:

Dim objFSO As New FileSystemObject

Плюсы раннего связывания: с помощью Object Browser можно просмотреть список объектов, свойств, методов, событий и констант, включенных в FSO. Но есть значительный минус: если планируется использовать программу на нескольких компьютерах, то есть большая вероятность получить ошибку(читать подробнее).
Позднее связывание: ничего нигде не надо подключать, а просто используем метод CreateObject(именно этот способ используется мной в примерах ниже). Методы таким образом просмотреть не получится, но зато работать будет без проблем на любых компьютерах без дополнительных действий.

Sub Copy_File() Dim objFSO As Object, objFile As Object Dim sFileName As String, sNewFileName As String sFileName = «C:WWW.xls» ‘имя исходного файла sNewFileName = «D:WWW.xls» ‘имя файла для переименования If Dir(sFileName, 16) = «» Then MsgBox «Нет такого файла», vbCritical, «Ошибка»: Exit Sub ‘копируем файл Set objFSO = CreateObject(«Scripting.FileSystemObject») Set objFile = objFSO.GetFile(sFileName) objFile.Copy sNewFileName MsgBox «Файл скопирован», vbInformation, «www.excel-vba.ru» End Sub

Sub Move_File() Dim objFSO As Object, objFile As Object Dim sFileName As String, sNewFileName As String sFileName = «C:WWW.xls» ‘имя исходного файла sNewFileName = «D:WWW.xls» ‘имя файла для переименования If Dir(sFileName, 16) = «» Then MsgBox «Нет такого файла», vbCritical, «Ошибка»: Exit Sub ‘перемещаем файл Set objFSO = CreateObject(«Scripting.FileSystemObject») Set objFile = objFSO.GetFile(sFileName) objFile.Move sNewFileName MsgBox «Файл перемещен», vbInformation, «www.excel-vba.ru» End Sub

Читать еще:  Excel недостаточно памяти

Sub Rename_File() Dim objFSO As Object, objFile As Object Dim sFileName As String, sNewFileName As String sFileName = «C:WWW.xls» ‘имя исходного файла sNewFileName = «WWW1.xls» ‘имя файла для переименования If Dir(sFileName, 16) = «» Then MsgBox «Нет такого файла», vbCritical, «Ошибка»: Exit Sub ‘переименовываем файл Set objFSO = CreateObject(«Scripting.FileSystemObject») Set objFile = objFSO.GetFile(sFileName) objFile.Name = sNewFileName MsgBox «Файл переименован», vbInformation, «www.excel-vba.ru» End Sub

Хочу обратить внимание, что при переименовании файла через FileSystemObject необходимо указать только имя нового файла — путь указывать не надо. Иначе получите ошибку.

Sub Delete_File() Dim objFSO As Object, objFile As Object Dim sFileName As String sFileName = «C:WWW.xls» ‘имя файла для удаления If Dir(sFileName, 16) = «» Then MsgBox «Нет такого файла», vbCritical, «Ошибка»: Exit Sub ‘удаляем файл Set objFSO = CreateObject(«Scripting.FileSystemObject») Set objFile = objFSO.GetFile(sFileName) objFile.Delete MsgBox «Файл удален», vbInformation, «www.excel-vba.ru» End Sub

Вот теперь вроде бы все.

Статья помогла? Поделись ссылкой с друзьями!

Как на VBA сохранить файл Excel с названием, взятым из ячейки?

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

Исходные данные

Сначала давайте разберем исходные данные, которые я буду использовать в примерах. Пусть это будет некая абстракция марок автомобилей с указанием их VIN номера.

Примечание! Я использую Excel 2013.

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

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

Сохранение файла Excel с названием из ячейки — с привязкой к этой ячейке

Итак, данные у нас есть, теперь необходимо написать процедуру на VBA (макрос), которая брала бы значение из конкретной ячейки, в данном случае это будет ячейка B14, и присваивала бы это значение имени файла.

Ниже представлен код процедуры, я его подробно прокомментировал. Единственное скажу, что я во всех примерах сохраняю новые файлы без макросов (расширение .xlsx), т.е. по факту будет один файл с поддержкой макросов, а все производные — без.

Если нужно сохранять макрос в каждом файле, т.е. файлы с поддержкой макросов (расширение .xlsm), то необходимо просто указать другой тип файла при сохранении, а именно xlOpenXMLWorkbookMacroEnabled, в процедурах в комментариях я это указываю.

Открываем в Excel редактор Visual Basic, и вставляем код следующей процедуры в исходный код этой книги (ЭтаКнига, открыть двойным кликом) или в модуль, который Вы предварительно должны создать.

Примечание! Для того чтобы открыть редактор Visual Basic в Excel, необходимо перейти на вкладку «Разработчик» и нажать на кнопку «Visual Basic». Файл Excel с кодом процедуры необходимо сохранить с типом «Книга Excel с поддержкой макросов».

Код процедуры

После сохранения файла запустите макрос («Макросы -> Выполнить -> SaveFile»).

В результате в моем случае процедура успешно выполнилась, файл сохранился с названием «Марка Авто 1», данное значение взято из ячейки B14, о чем будет свидетельствовать сообщение в конце процедуры. Файл сохранен в каталоге, где и исходный файл (во всех примерах ниже прописано то же самое, т.е. сохранение рядом с исходником, но это Вы можете изменить).

Добавление кнопки в Excel для запуска макроса

Каждый раз открывать окно с макросами и выбирать нужный макрос не очень удобно, поэтому можно легко добавить кнопку где-нибудь рядом с данными и просто нажимать ее. Это делается следующим образом «Вкладка Разработчик -> Вставить -> Кнопка (элемент управления формы)».

Затем выберите место, где вставить кнопку, и нажмите туда. После этого появится окно назначения действия, т.е. нужно выбрать, какой макрос запускать при нажатии этой кнопки, выбираем наш макрос, т.е. SaveFile, и нажимаем «ОК».

В итоге появится кнопка с названием «Кнопка», это название лучше изменить, например, на «Сохранить файл». Для этого нажмите правой кнопкой мыши на кнопку и выберите настройки «Изменить текст». В итоге у Вас должно получиться что-то вроде этого.

Читать еще:  Excel workbooks open имяфайла

Сохранение файла Excel с названием из ячейки — без привязки к ячейке

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

Замените код процедуры следующим кодом, который совсем немного, но изменен.

Проверяем работу, становимся на нужную ячейку, и запускаем макрос (в процедуре я добавил проверку, если выбрана пустая ячейка, возникнет ошибка).

Как видим, все отработало.

Сохранение файла Excel с названием, которое сформировано из значений двух ячеек

Теперь представим, что нам нужно сформировать файл с названием из значений двух ячеек. Например, в нашем случае это может быть «Марка Авто – VIN Номер», в качестве разделителя я указал символ – (дефис), но им может выступать любой символ или вовсе отсутствовать.

В этом примере я покажу, как можно это реализовать с привязкой к конкретным ячейкам, в нашем случае B14 и D14.

Код процедуры в данном случае будет выглядеть следующим образом.

Все ОК, файл создан.

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

Для этого мы снова внесем изменения в нашу процедуру, которая будет работать от активной ячейки (смещение от активной ячейки), только с условием того, что выбран столбец с теми значениями, которые необходимо использовать.

Код процедуры

Становитесь на любую ячейку со значением в столбце B, и запускайте макрос.

У меня на этом все, надеюсь, материал был Вам полезен, пока!

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

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

Если в книге есть макрос Visual Basic для приложений (VBA), который вы хотите использовать в другом месте, вы можете скопировать модуль, содержащий этот макрос, в другую открытую книгу с помощью редактора Visual Basic (VBE).

Макросы и средства VBA находятся на вкладке Разработчик, которая по умолчанию скрыта, поэтому сначала нужно включить ее.

В Windowsперейдите в раздел Параметры _Гт_ файла _гт_ настроить ленту.

Для Macперейдите на вкладку _Гт_ параметры Excel. _гт_ ленты _амп_ Toolbar.

Затем в разделе Настройка ленты в разделе Основные вкладкиустановите флажок разработчик .

Общие сведения о макросах и языке VBA

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

Макрос — это Макрокоманда или набор действий, которые можно использовать для автоматизации задач.

Вы можете записывать макросы с помощью команды » записать макрос » на вкладке » разработчик «.

Макросы записываются на языке программирования VBA.

Вы можете просматривать и редактировать макросы в редакторе Visual Basic — окне, которое открывается в Excel. Ниже приведен пример окна VBE для Windows:

Макросы с именами сделатьячейкузеленой и установитьвысотустроки находятся в модуле с именем Module1, который хранится в Книга1.

Копирование модуля из одной книги в другую

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

На вкладке разработчик нажмите кнопку Visual Basic , чтобы открыть Редактор Visual Basic.

В редакторе Visual Basic в меню вид выберите пункт Обозреватель проектов или нажмите клавиши CTRL + R .

В области » Обозреватель проектов » перетащите модуль с макросом, который вы хотите скопировать в конечную книгу. В данном случае мы копируем Module1 из book2. xlsm в Книга1. xlsm.

Module1 копируется из book2. xlsm

Копия Module1 скопирована в Книга1. xlsm

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

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

Ссылка на основную публикацию
ВсеИнструменты
Adblock
detector
×
×