Vba excel создать книгу excel

Обновлено: 07.07.2024

​ начинающих программистов настоятельно​Данный учебник является введением​ не написал, что​RAN​ то как прописать​ названием.​а как изменить​The_Prist​ для него листа​ указываются без скобок:​А сам код​ objThisBook.Sheets("abs_plan").Range(sAddress).Value Sheets("abs_plan_191").Range("A1").Resize(UBound(vData, 1),​ новую книгу.​Юрий М​ одним моментом, книгу​: Sub New2() Dim​Перевел: Антон Андронов​ рекомендуется начать с​ в язык программирования​ там у него​:​ макрос, чтобы он​А мне нужно​ имя, чтобы создалась​: нет. Я же​ и книги подразумевает​

  • ​New_Wb.SaveAs Range("O6") &​
  • ​ вот​ UBound(vData, 2)).Value =​
  • ​Помогите пожалуйста​
  • ​: Sub New2() Dim​ создал, обозвал её​
  • ​ New_Wb As Workbook​
  • ​Автор: Антон Андронов​
  • ​ первого раздела учебника​ Excel VBA (Visual​
  • ​ получилось, я напишу,​200?'200px':''+(this.scrollHeight+5)+'px');">Sub Макрос1()​
  • ​ все делал то​ так, чтобы название​
  • ​ не 'Книга1',​
  • ​ написал, что указание​

​ обращение к АКТИВНОЙ​ "\" & Range("Книга")​Dim New_Wb As​ vDataВот написал, все​

​Юрий М​ New_Wb As Workbook​
​ как Вы помогли,​
​ Set New_Wb =​

Создание новой книги макросом

​ и изучать их​​ Basic for Applications).​ как буквально "задать":​' отключить копирование​
​ же самое, за​ новой книги бралось​а например 'Моя​ Range без явного​ книге. А Вы​ & ".xlsm"​ Workbook Set New_Wb​ отлично работает, но​: Согласен с Johny:​ Set New_Wb =​ теперь беда. Хочу​
​ Workbooks.Add New_Wb.Activate New_Wb.SaveAs​: Доброе время суток.​ по порядку. Те,​ Изучив VBA, Вы​ Dim tmp tmp​ объектов​ исключением копирования данной​
​ с ячейки (в​

​ книга'​​ указания листа и​ её только что​
​плюс очень желательно​ = Workbooks.Add New_Wb.Activate​ копирует без сохранения​

​ ерунда получается -​​ Workbooks.Add ThisWorkbook.Sheets("plan").Copy New_Wb.Sheets.Add​ с книги откуда​ ("D:\test\" & ThisWorkbook.Sheets("Лист1").Range("A1")​ Есть книга, в​ кто имеет опыт​ сможете создавать макросы​ = Application.SheetsInNewWorkbook 'сохранить​

​Application.CopyObjectsWithCells = False​​ кнопки. Проще говоря​

​ примере видно -​​new_see​ книги в Вашем​ создали. Следовательно там​ указывать формат файла​

​ New_Wb.SaveAs (Range("O6") &​​ параметров ячеек. ​ сначала имя листа​ After:=New_Wb.Sheets(Sheets.Count) New_Wb.SaveAs ("D:\test\"​ запускал макрос скопировать​

​ & ".xls") New_Wb.Close​​ ячейке А1 значение.​

​ в программировании на​​ и выполнять в​

​ свойство "число листов​​' включить копирование​ - без этой​ ячейка E7)​: NewWorkbook.Windows(1).Caption = 'Моя​

​ случае указывает на​​ НЕТ ИМЕНОВАННЫХ ДИАПАЗОНОВ,​ явно:​
​ "\" & Range("Книга")​Johny​ "plan", затем "plan_191". ​ & ThisWorkbook.Sheets("Лист1").Range("A1") &​ лист (plan) в​ End Sub​Sub New2() Dim​ VBA, могут сразу​ Excel практически любые​ в новой книге"​ объектов​
​ кнопки.​Пример прикрепляю.​ книга'​ активный лист. А​ да и вообще​New_Wb.SaveAs Range("O6") &​ & ".xlsm")​: Так?​Юрий М​ ".xls") New_Wb.Close End​ эту новую книгу​evgeniy_m​ New_Wb As Workbook​ же перейти к​ задачи. Вы очень​ Application.SheetsInNewWorkbook = 200​Application.CopyObjectsWithCells = True​

​Прикрепил файл​​Жду помощи.​спасибо​ т.к. Вы это​ данных.​

​ "\" & Range("Книга")​​либо​Sub F() Dim​: evgeniy_m, у Дмитрия​ Sub​ с созданым листом​: ошибку дает (​ Set New_Wb =​ интересующим темам.​

​ скоро поймёте, что​​ 'установить новое значение​End Sub​gling​
​ShAM​den45444​ делаете после создания​Советую очень внимательно​
​ & ".xlsm", 52​Dim New_Wb As​ wkbNew As Workbook​ (The_Prist) очень хороший​Hugo​ "plan_191".​Юрий М​

​ Workbooks.Add New_Wb.Activate New_Wb.SaveAs​​Часть 1: Оформление кода​ макросы могут сэкономить​ свойства в пределах​PuLbKa​: Пропишите так​: Замените:​: Есть макрос на​ новой книги -​
​ изучить:​

​52 - формат​​ Workbook Set New_Wb​ Sheets("plan").Copy Set wkbNew​ текст в подписи​: скопировать лист (plan)​

​Dim sShName As​​: Это не информация​ ("D:\test" & "1"​Часть 2: Типы данных,​ уйму времени благодаря​

​ то активна именно​​Honey​ xslm.​ = Workbooks.Add New_Wb.Activate​ = ActiveWorkbook wkbNew.Sheets(1).Name​ - прочитайте))​ в эту новую​

​ String, sAddress As​​ - всегда следует​ & ".xls") New_Wb.Close​ переменные и константы​ автоматизации повторяющихся задач​ = Workbooks.Add 'создать​ как задать количество​ActiveSheet.Shapes("Button 1").Delete​ = "Смета-1.xlsx" 'имя​ Его нужно немного​ она, а не​: Во вложении файл,​Honey​ New_Wb.SaveAs ("M:\Production\Мастера\2017\Нормализация\" &​

​ = "plan_191" wkbNew.SaveAs​​Alexander88​
​ книгу -​ String, vData Dim​ указывать - КАКУЮ​ End SubЗапускаю макрос,​Часть 3: Массивы​ и обеспечить гибкое​ книгу с заданным​ страниц при создании​

​bkNew.SaveAs ThisWorkbook.Path &​​ нового файла​ изменить под условие.​

​ что-то там где-то​​ в котором этот​

​: The_Prist, спасибо, что​​ Range("имя_папки").Value & "\"​
​ "D:\test\" & ThisWorkbook.Sheets("Лист1").Range("A1")​: Может проще создать​sheets("plan").copy получите новую​ objThisBook As Object​ ошибку получаете.​ создается новая книга​Часть 4: Процедуры Function​ взаимодействие с другими​ кол-вом листов Application.SheetsInNewWorkbook​
​ нового excel-файла​ "\" & CStr(shAct.Range("B19").Value)​
​на: Код200?'200px':''+(this.scrollHeight+5)+'px');">Dim strNewBook​Подробно:​ еще. Видимо, читали​ самый макрос (модуль)​ откликнулись!​ & Range("Книга") &​
​ & ".xls" End​
​ копию книги, а​ книгу с одним​ Set objThisBook =​Alexander88​ сохраняется по пути​ и Sub​ пользователями.​
​ = tmp 'вернуть​

​Содаю я его​​ & ".xlsx"​
​ As String​- Есть книга​ либо не все,​Honey​
​Ошибка Runtime error​ ".xlsm")​

​ Sub​​ потом удалить листы​ листом, который затем​
​ GetObject.ActiveWorkbook sAddress =​: И пример Юрия​ D:\test, присваивается имя​Часть 5: Условные операторы​Этот учебник не является​
​ значение свойстваКстати, добавлять​ так​bkNew.Close​
​strNewBook = [e7].Value​ и в этой​ либо не то,​
​: The_Prist,​ 1004:: Method 'Range'​Спасибо​
​Юрий М​ кроме нужного?​

​ можете переименовать.​​ "A1:AA6000" vData =​ с указанием откуда​
​ 1.xls и закрывается.​Часть 6: Циклы​ исчерпывающим руководством по​

​ листы в существующую​​Dim xlWb As​Но думаю что​ & ".xlsx" 'имя​ книги есть лист​ либо не так.​Об этом я​ of Global Failed​Honey​: evgeniy_m, Вы читаете,​Hugo​
​Только при таком​ objCloseBook.Sheets("plan").Range(sAddress).Value objThisBook.Close False​ берется ячейка не​Проблема в следующем,​Часть 7: Операторы и​ языку программирования Excel​ книгу тоже можно​ Excel.Workbook Set xlWb​ лучше кнопку и​ нового файла​ "Смета" и есть​ New_Wb.SaveAs ThisWorksbook.Sheets("1 норм").Range("O6")​
​ читала. Видимо, действительно,​The_Prist​

​: Люди добрые!​​ что Вам пишут?​: Кстати хороший вариант​ копировании пострадают длинные​

​ Sheets("plan_191").Range("A1").Resize(UBound(vData, 1), UBound(vData,​​ работает?​
​ как переписать макрос,​ встроенные функции​ VBA. Его цель​ не по одному:​ = Workbook.Add​ список выбора сметы​Karataev​ кнопка на другом​ & "\" &​ я чего-то не​: А Вы вдумайтесь​Помогите с проблемой​evgeniy_m​ сделать копию файла,​
​ строки в ячейках,​

​ 2)).Value = vDataно​​evgeniy_m​ чтобы новая книга​Часть 8: Объектная модель​ – помочь начинающему​ Sheets.Add after:=ActiveSheet, Count:=200Параметр​Все получилось​ разместить вверху сметы.​: Смотрите прикрепленный файл​ листе "создать новую​ ThisWorksbook.Sheets("1 норм").Range("Книга") &​ понимаю((( У меня​ в ошибку. В​ выше, пожалуйста. Интернет​: Johny, спасибо!​ его открыть, поудалять​ если они конечно​ на строке Set​: макрос не компилируеться..​ сохранялась с названием​ Excel​ специалисту освоить написание​

Как создать новую книгу с заданным именем?

​ Count тоже в​​S.V.I.N.​ Кнопку привязать к​den45444​
​ смету".​
​ ".xlsm", 52​ есть такие диапазоны.​ Google-переводчик закиньте. Тогда​ обыскала ничего не​Honey​
​ лишнее. Так и​ есть. Хотя в​ objThisBook = GetObject.ActiveWorkbook​
​Юрий М​ как в ячейке​

​Часть 9: События в​​ макросов в Excel​ пределах 1..255.​

​: Количество страниц можно​

Создание новой книги (название книги из ячейки) (Макросы/Sub)

​ строкам и при​​:​- Нажимая на​new_see​ И я ведь​
​ видно будет, что​
​ получается(((​: Всем привет!​ строки не пострадают,​ новых экселях не​ дает ошибку. как​: Мой вариант проверяли?​ А1 книги, с​
​ Excel​ при помощи кода​Hugo121​ увеличивать следующим образом.​ копировании сметы удалять​ShAM​
​ этот макрос, создается​: Как создать новую​ указываю на имена​ у Вас проблема​Вся надежда на​
​Надеюсь мой вопрос​ и связи. ​ проверял. ​ мне указать, что​The_Prist​ которой запускается макрос?​
​Часть 10: Ошибки VBA​
​ VBA. Для желающих​

​: На практике обычно​​for i=0 to​ ​ верхнею строку или​,​ новая книга и​
​ книгу с заданным​ диапазонов не в​
​ в том, что​ Вас​ здесь уместен. Я​

​evgeniy_m​​evgeniy_m​

​ нужно копировать лист​​: evgeniy_m, Лист1 в​​Заранее спасибо!​​Примеры по VBA​​ изучить этот язык​​ нужно​ x With New_Ex​
​ строки. Удалится и​Karataev​ лист "Смета" копируется​ именем?​ ново-созданной книге. Или​ нет диапазона "Книга"​The_Prist​ под основу взяла​: Dim sShName As​: Суть такая, открываю​ из книги откуда​ книге с макросом​
​Alexander88​

​Более подробное описание по​​ программирования более глубоко​ ​Set xlWb =​
​ Sheets.Add After:=Sheets(Sheets.Count) end​
​ список и кнопка​, Благодарю за скорую​ в эту книгу,​
​Например​

​ как мне конкретней​ или "Об" или​: что за ошибка​ код, предлагаемый здесь.​ String, sAddress As​ книгу, запускаю макрос,​ запускался макрос. ​ присутствует? Что означает​: Попробуйте заменить пятую​ Excel VBA можно​ существуют отличные книги​

​ Workbooks.Add(1) 'создать книгу​​ With next iгде​​ вызова макроса.​​ помощь.​

​ сохраняет и закрывает.​​Sub CreateWorkbook() Set​ ​ указать, чтобы диапазон​
​ другого, чего Вы​ - нам угадать?​
​ Но его чуток​
​ String, vData Dim​ создается новая книга​
​Johny​
​ "макрос не компилируется"?​

Задать количество листов при создании нового excel-файла

​ строку на:​​ найти на сайте​ по Excel VBA.​ с одним листомДалее​ х - это​
​den45444​А если эту​
​- Название новой​ NewWorkbook = Workbooks.Add​ брался конкретно с​
​ пишите в Range.​

​Да и скобки​​ видоизменила. И теперь​ objThisBook As Object​
​ и лист в​: Ничего не понятно​evgeniy_m​New_Wb.SaveAs ("D:\test\" &​ Microsoft Office.​ Далее приведено содержание​ можно листы добавить,​

​ кол-во циклов (требуемое​​:​ кнопку поставить на​ книги указывается в​ End Subсоздает книгу​ первоначальной книги для​Так же надо​ здесь лишние. В​ у меня проблема-выдает​ Set objThisBook =​ ней. Теперь из​ (а в приложенном​: супер! Огромное спасибо​ Cells(1, 1) &​Урок подготовлен для Вас​ самоучителя по Excel​ но это нужно​ кол-во листов)​gling​ тот лист который​ самом макросе, т.е.​ с именем по​ именования. ​ помнить, что указание​ VBA методы без​

Следующий по иерархии после Application объект в объектной модели Excel — это объект Workbook, который представляет книгу Excel. Можно сказать, что объект Workbook занимает в Excel примерно то же место, что и объект Document в Word — он нужен для получения ссылки на нужную нам книгу в наборе открытых книг Excel, а также для настройки общих свойств и выполнения общих действий со всеми листами книги. Получить этот объект можно очень просто:

  • первый способ — воспользоваться коллекцией Workbooks, которая доступна через свойство Workbooks объекта Application. Впрочем, применять это свойство совершенно не обязательно — коллекция Workbooks в Excel и так постоянно доступна. Найти нужную книгу в этой коллекции можно по ее имени или номеру в коллекции:
  • второй способ — использовать свойство Application.ActiveWorkbook. При помощи этого свойства мы обращаемся к активной в настоящей момент книге:
  • третий способ — использовать свойство Application.ThisWorkbook. При этом мы обращаемся к той книге, которой принадлежит данный программный модуль:

На практике чаще всего нам нужно либо создать в Excel новую книгу, либо открыть существующую книгу (или другой файл в формате, который понимает Excel, например, DBF). Для этой цели используются методы Add() и Open() соответственно. Например, создать новую книгу в Excel можно так:

Dim oWbk As Workbook

Set oWbk = Workbooks.Add()

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

Открытие существующей книги выглядит так:

Dim oWbk As Workbook

Set oWbk = WorkBooks.Open("C:\mybook1.xls")

Помимо стандартных, в коллекции Workbooks предусмотрено также три специальных метода:

  • OpenDatabase() — открыть базу данных, выполнить к ней запрос (или открыть таблицу/представление напрямую), а результаты запроса поместить как импортированные внешние данные в новую автоматически созданную рабочую книгу Excel;
  • OpenText() — почти то же самое, но в качестве источника здесь выступает текстовый файл. Дополнительные параметры позволяют определять его формат.
  • OpenXML() — в качестве источника данных будет выступать файл в формате XML.

Как и метод InsertDatabase() в Word, эти методы следует использовать только в самых простых случаях. Рекомендуется по возможности использовать более мощные и стандартные средства объектной модели ADO.

Теперь о самых важных свойствах объекта Workbook — самой рабочей книги:

  • Name, CodeName, FullName — разные имена этой книги. Самое простое имя — Name, это имя совпадает с именем файла книги. FullName — это имя файла книги вместе с полным путем к нему в операционной системе. CodeName — как эта книга будет называться в коде. CodeName можно посмотреть в окне Project Explorer или, если открыть свойства книги в окне Properties, кодовое имя книги будет представлено в строке (Name). Все три свойства доступны только для чтения, менять их можно другими способами (например, сохраняя файл под другим именем или прямо в окне Properties).

Определенное отношение к именам имеет также свойство Path (путь к файлу книги) .

  • Charts, Sheets, ActiveChart, ActiveSheet, CustomViews, BuiltinDocumentProperties и CustomDocumentProperties, Windows, WebOptions возвращают одноименные коллекции соответствующих объектов. Некоторые из этих объектов будут рассматриваться ниже.
  • ConflictResolution — как будут разрешаться конфликты изменения данных, если книга открыта несколькими пользователями сразу (shared workbook). Есть возможность сделать так, чтобы локальный пользователь автоматически выигрывал, автоматически проигрывал или возникало диалоговое окно с возможностью разобраться в конфликте вручную. Существует большое количество свойств, которые позволяют настроить параметры совместной работы с книгой, но по причине того, что такая работа не рекомендуется (данные для совместного доступа необходимо переносить в базу данных), рассматриваться они здесь не будут, за исключением:
    • запрещать/разрешать общий доступ к рабочей книге можно при помощи методов SaveAs() или ExclusiveAccess();
    • по умолчанию возможность совместного редактирования для книги отключена (проверить можно при помощи свойства MultiUserEditing);
    • получить список всех пользователей (а также когда они открыли файл и в каком режиме) можно при помощи свойства UserStatus.

    For Each Item In ThisWorkbook.Names

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

    Методов у объекта Workbook также очень много, однако значения самых употребимых — Activate(), Close(), Save(), SaveAs(), PrintOut(), Protect() и Unprotect() очевидны и действуют аналогично одноименным методам объекта Document в Word.

    VBA Excel. Рабочая книга (открыть, создать новую, закрыть)

    Открытие книги Excel из кода VBA. Создание новой книги, присвоение ей имени. Обращение к открытой книге и закрытие. Методы Open, Add и Close объекта Workbooks.

    Открытие существующей книги

    Существующая книга открывается из кода VBA Excel с помощью метода Open:

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

    Или, если файл существует, можно сразу его открыть:

    Создание новой книги

    Новая рабочая книга Excel создается в VBA с помощью метода Add:

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

    Обращение к открытой книге

    Обращение к активной книге:

    Обращение к книге с выполняемым кодом:

    Обращение к книге по имени:

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

    Как закрыть книгу Excel из кода VBA

    Открытая рабочая книга закрывается из кода VBA Excel с помощью метода Close:

    Закрыть книгу Excel из кода VBA с сохранением внесенных изменений можно также с помощью параметра SaveChanges:

    Excel vba создать новую книгу

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

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

    Помогите, пожалуйста. (В VBA я новичок)

    [moder]Читаем внимательно правила форума
    Особенно п.п.3[/moder]

    Конференция VBStreets

    Весь вкус программирования!

    Создание книги с заданным именем

    Создание книги с заданным именем

    Влад » 16.04.2004 (Пт) 9:52

    Заранее благодарен за помощь.

    GSerg » 16.04.2004 (Пт) 10:03

    Влад » 16.04.2004 (Пт) 10:43

    GSerg » 16.04.2004 (Пт) 10:48

    Влад » 16.04.2004 (Пт) 15:29

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

    GSerg » 17.04.2004 (Сб) 6:45

    Влад » 19.04.2004 (Пн) 13:32

    GSerg » 20.04.2004 (Вт) 9:32

    Влад » 21.04.2004 (Ср) 7:58

    уырекун » 04.05.2015 (Пн) 11:47

    pronto » 04.05.2015 (Пн) 16:41

    уырекун » 04.05.2015 (Пн) 17:29

    alibek » 04.05.2015 (Пн) 17:54

    Макрос на VBA Excel – Формируем документы по шаблону

    Очень часто бывает такое, что нужно сформировать документы по определенному шаблону, на основе каких-то данных, например, по каждому сотруднику или по каждому лицевому счету. И делать это вручную бывает достаточно долго, когда этих самых сотрудников или лицевых счетов много, поэтому сегодня мы рассмотрим примеры реализации таких задач в Excel с помощью макроса написанного на VBA Excel.

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

    Мы с Вами уже выгружали данные по шаблону через клиент Access из базы MSSql 2008 в Word и Excel вот в этой статье — Выгрузка данных из Access в шаблон Word и Excel. Но сейчас допустим, у нас данные располагаются в базе, в клиенте которой нельзя или слишком трудоемко реализовать такую задачу, поэтому мы просто выгрузим необходимые данные в Excel и на основе таких данных по шаблону сформируем наши документы.

    Читать еще: Microsoft excel ожидает пока другое приложение завершит действие ole

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

    Напомню, что на данном сайте тема VBA Excel уже затрагивалась, например, в материале – Запрет доступа к листу Excel с помощью пароля

    И так приступим!

    Пишем макрос на VBA Excel по формированию документов

    Реализовывать нашу задачу будем на примере «Электронной карточке сотрудника» (я это просто придумал:), хотя может такие и на самом деле есть), т.е. документ в котором хранится личные данные сотрудника вашего предприятия, в определенном виде, именно в Excel.

    Примечание! Программировать будем в Excel 2010.

    И для начала приведем исходные данные, т.е. сами данные и шаблон

    Данные.


    Лист, на котором расположены эти данные так и назовем «Данные»

    Шаблон.


    Лист, на котором расположен шаблон, тоже так и назовем «Шаблон»

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

    Это делается очень просто, выделяете необходимую ячейку или диапазон, и жмете правой кнопкой мыши и выбираете «Присвоить имя», пишите имя ячейки и жмете «ОК»


    Свои поля я назвал следующим образом:

    • ФИО – fio;
    • № — number;
    • Должность – dolgn;
    • Адрес проживания – addres;
    • Тел. № сотрудника – phone;
    • Комментарий – comment.

    Код макроса на VBA Excel

    Для того чтобы написать код макроса, открывайте на ленте вкладку «Разработчик», далее макросы.

    Примечание! По умолчанию данной вкладке в Excel 2010 может и не быть, чтобы ее отобразить нажмите правой кнопкой по ленте пункт меню «Настройка ленты»


    затем, в правой области поставьте галочку напротив пункта «Разработчик»


    После вкладка разработчик станет отображаться на ленте.

    Далее, когда Вы откроете вкладку разработчик и нажмете кнопку «Макросы» у Вас отобразится окно создания макроса, Вы пишите название макросы и жмете «создать».


    После у Вас откроется окно редактора кода, где собственно мы и будем писать свой код VBA. Ниже представлен код, я его как обычно подробно прокомментировал:

    Теперь осталось выполнить этот макрос, для этого откройте вкладку разработчик->макросы->выполнить наш макрос:


    и после выполнения у Вас в той же папке появится вот такие файлы


    Вот с таким содержимым:


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

    Создание отдельных книг из листов текущей книги

    Данная функция является частью надстройки MulTEx

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

    1. Создаем личную книгу макросов

    Создать книгу достаточно просто. Для этого потребуется один раз сделать несколько движений:

    • Открываем вкладку " Вид" >> нажимаем кнопку "Запись макроса. " (эта же кнопка присутствует на вкладке Разработчик , которая может быть отключенной)
    • В открывшемся окне можно оставить пустыми поля с именем макроса, сочетанием клавиш и описанием - для нас сейчас это всё неважно, но в поле "Сохранить в:" нужно выбрать "Личная книга макросов" и нажать ОК:
    • Как только вы нажали ОК, Excel будет следить за каждым вашим действием и записывать их в виде кода, который в последствии можно воспроизвести (повторить все действия). Нам сейчас достаточно совершить любое движение - например, выделите любую ячейку.
    • Теперь останавливаем запись макроса. Путь тот же: Вид >> Макросы >> на месте кнопки "Запись макроса. " теперь находится кнопка " Остановить запись "
    Excel. Макросы. Расположение кнопки "Остановить запись" Excel. Макросы. Расположение кнопки "Остановить запись"
    • Готово. Теперь у нас есть первый макрос, который, по сути, ничего не умеет. Но, главное, вместе с ним была автоматически создана персональная книга макросов.

    2. Как разместить код в персональной книге макросов.

    Переходим в редактор VBA в Excel. Для этого нажимаем кнопку "Visual Basic" на вкладке Разработчик или просто используем сочетание клавиш Alt+F11 :

    Далее, нам нужно окно Project - VBAProject. Если оно скрыто, то отобразить его можно двумя способами:

    • В меню сверху View >> галочка напротив Project Explorer
    • Или сочетание клавиш Ctrl+R
    Excel. Редактор VBA. Расположение кнопки Project Explorer Excel. Редактор VBA. Расположение кнопки Project Explorer

    В открывшемся окне раскрываем через " + " структуру VBAProject (PERSONAL.XLSB) >> находим Module 1 и делаем по нему двойной клик >> рядом откроется окно " PERONAL.XLSB - Module1 (Code) ", где вы увидите код записанного ранее макроса. Этот код можно (и для порядка, я бы сказал, нужно) удалить, а на его место разместить необходимый. И не забываем сохраняться:)

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

    Excel. Пример расположения кода в персональной книге макросов. Excel. Пример расположения кода в персональной книге макросов.

    Например, если вы хотите разместить в персональной книге макросов код, которые будет отображать все скрытые листы ( ссылка на пост ), то это будет выглядеть примерно так:

    Читайте также: