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

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

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

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

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

200?’200px’:”+(this.scrollHeight+5)+’px’);”>
Public Sub nytfjdkt()

‘—–Копирование столбцов из старой книги в новую книгу———-
Range(“A:H,S:S,U:U,W:W,AQ:AQ,AE:AE,AF:AF,AY:AY,BA:BA,BG:BG,BH:BH,BI:BI”).Select
‘ Range( _
“Таблица_beta_newbooksql_Rebus_vwDefect[[#Headers],[Сумма дельта приходная, руб.]]” _
).Activate
Selection.Copy
‘————СОЗДАНИЕ НОВОЙ КНИГИ—————

Dim oExcel As New Excel.Application ‘Запускаем Excel
oExcel.Visible = True ‘Делаем его видимым
Dim oWbk As Excel.Workbook ‘Создаем новую книгу Книга1
Set oWbk = oExcel.Workbooks.Add()
Dim oSheet As Excel.Worksheet
Set oSheet = oWbk.Worksheets.Item(“Лист1”) ‘Находим Лист1
oSheet.Name = “Новый лист” ‘Присваиваем ему имя “Новый лист”
Dim oRange As Range ‘Находим диапазон A1 в Книга1
Set oRange = oSheet.Range(“A1”)

‘———-На данном этапе я хочу вставить данные из буфера

oRange.Value = “Начиная с этой ячейки я хочу вставить диапазон из буфера” ‘вносим в него данные

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

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

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

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

200?’200px’:”+(this.scrollHeight+5)+’px’);”>
Public Sub nytfjdkt()

‘—–Копирование столбцов из старой книги в новую книгу———-
Range(“A:H,S:S,U:U,W:W,AQ:AQ,AE:AE,AF:AF,AY:AY,BA:BA,BG:BG,BH:BH,BI:BI”).Select
‘ Range( _
“Таблица_beta_newbooksql_Rebus_vwDefect[[#Headers],[Сумма дельта приходная, руб.]]” _
).Activate
Selection.Copy
‘————СОЗДАНИЕ НОВОЙ КНИГИ—————

Dim oExcel As New Excel.Application ‘Запускаем Excel
oExcel.Visible = True ‘Делаем его видимым
Dim oWbk As Excel.Workbook ‘Создаем новую книгу Книга1
Set oWbk = oExcel.Workbooks.Add()
Dim oSheet As Excel.Worksheet
Set oSheet = oWbk.Worksheets.Item(“Лист1”) ‘Находим Лист1
oSheet.Name = “Новый лист” ‘Присваиваем ему имя “Новый лист”
Dim oRange As Range ‘Находим диапазон A1 в Книга1
Set oRange = oSheet.Range(“A1”)

‘———-На данном этапе я хочу вставить данные из буфера

oRange.Value = “Начиная с этой ячейки я хочу вставить диапазон из буфера” ‘вносим в него данные

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

Сообщение Добрый день!

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

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

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

200?’200px’:”+(this.scrollHeight+5)+’px’);”>
Public Sub nytfjdkt()

‘—–Копирование столбцов из старой книги в новую книгу———-
Range(“A:H,S:S,U:U,W:W,AQ:AQ,AE:AE,AF:AF,AY:AY,BA:BA,BG:BG,BH:BH,BI:BI”).Select
‘ Range( _
“Таблица_beta_newbooksql_Rebus_vwDefect[[#Headers],[Сумма дельта приходная, руб.]]” _
).Activate
Selection.Copy
‘————СОЗДАНИЕ НОВОЙ КНИГИ—————

Dim oExcel As New Excel.Application ‘Запускаем Excel
oExcel.Visible = True ‘Делаем его видимым
Dim oWbk As Excel.Workbook ‘Создаем новую книгу Книга1
Set oWbk = oExcel.Workbooks.Add()
Dim oSheet As Excel.Worksheet
Set oSheet = oWbk.Worksheets.Item(“Лист1”) ‘Находим Лист1
oSheet.Name = “Новый лист” ‘Присваиваем ему имя “Новый лист”
Dim oRange As Range ‘Находим диапазон A1 в Книга1
Set oRange = oSheet.Range(“A1”)

‘———-На данном этапе я хочу вставить данные из буфера

oRange.Value = “Начиная с этой ячейки я хочу вставить диапазон из буфера” ‘вносим в него данные

[moder]Читаем внимательно правила форума
Особенно п.п.3[/moder] Автор – Дмитрий_С
Дата добавления – 14.01.2015 в 12:19

Источник: www.excelworld.ru

VBA в Excel Объект Excel.Workbook и программная работа с книгами Excel из VBA

10.4 Коллекция Workbooks и объект Workbook, их свойства и методы

Объект Excel.Workbook, программная работа с книгами Excel из VBA, создание и открытие книг Excel

Следующий по иерархии после 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.
  • FileFormat — формат книги (доступен напрямую только для чтения, можно изменять при сохранении). Форматов очень много: множество версий Excel, DBF, Lotus 1-2-3, форматы TXT, CSV, XML — всего несколько десятков.
  • свойство Names возвращает коллекцию всех именованных диапазонов в данной рабочей книге. Получить информацию о всех именованных диапазонах в данной книге можно, например, так:
Читайте также:  Как excel перевести в xml формат

For Each Item In ThisWorkbook.Names

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

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

Источник: vbastudio.ru

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

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

Добрый день всем!
Подскажите, как создать книгу с заданным именем.
Более конкретно – формируются отчеты за выбранные дни как отдельные книги, которые должны иметь разные имена (в которые включена дата). Какие из них сохранять как файлы, выбирает пользователь (такое требование), то есть Workbooks.open использовать не получается, так как создаются файлы на диске.
По Workbooks.Add (1) создаются книги с именем “Книга1″,”Книга2”.
При обходном варианте – временное создание файла-шаблона с произвольным именем и потом удалением этого шаблона

fname = “yyyy-mm-dd.xls”
Open fname For Random Access Read Write As #1
Close #1
Workbooks.Add fname
Kill fname

книга открывается с требуемым именем, но почему-то только для чтения (свойство .ReadOnly=True), а это свойство изменить нельзя.
При использовании как шаблона реальных файлов Excel – картина аналогичная, доступ к вновь открытой книге только по чтению.

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

GSerg » 16.04.2004 (Пт) 10:03

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

GSerg » 16.04.2004 (Пт) 10:48

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

Sorry, оказалось, что это не все.
При попытке сохранения книги с установленным по
Workbooks.Add(1).Windows(1).Caption = “yyyy-mm-dd.xls”
оказывается, что она имеет имя “ЛистNN”
WorkBooks(i).Name=”ЛистNN”
WorkBooks(i).FullName=”ЛистNN”
а эти свойства Read Only и не изменяются.
Что можно сделать здесь?

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

GSerg » 17.04.2004 (Сб) 6:45

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

GSerg » 20.04.2004 (Вт) 9:32

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

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

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

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

pronto » 04.05.2015 (Пн) 16:41

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

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

Ваш код вызывает диалог, а можно ли программно задать это “имя файла”, поясню, я программно создаю новую книгу, пользователь жмет в ней сохранить и уже в этом диалоге вместо “книга1” должно быть “Нужное_имя_при_сохранении”

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

alibek » 04.05.2015 (Пн) 17:54

Источник: bbs.vbstreets.ru

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

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

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

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

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

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

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

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

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

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

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

Читайте также:  Как открыть эксель в двух окнах

Данные.

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

Шаблон.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Источник: info-comp.ru

Как создать файл Excel с помощью VBA

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

Код макроса

Как работает этот код

  1. Копируем данные из ячеек B4:С15. Обратите внимание, что мы указываем полный адрес с именем листа и диапазона. Это позволит не допустить ошибки, если у Вас открыто несколько файлов Excel одновременно.
  2. Используем метод Add объекта Workbook, чтобы создать новую рабочую книгу. Это тоже самое, если бы мы вручную нажали Файл➜Создать➜Новый документ
  3. На этом этапе используется метод Paste, чтобы отправить данные, которые вы скопировали в ячейку А1 новой книги. Обратите внимание на то, что код ссылается на объект ActiveSheet. При создании новой книги она тут же становится активной. Если быть точнее, то становится активный лист в новой (только что созданной) книге.
  4. Далее используем метод DisplayAlerts. Используя свойство False — отключаем системные предупреждения Excel. Можно этого не делать, но мы можем запустить этот макрос несколько раз, и в этом случае Excel будет пытаться сохранить один и тот же файл несколько раз. Что происходит, когда вы пытаетесь сохранить книгу несколько раз? Правильно — Excel предупреждает, что в папке уже есть файл с таким же именем и спрашивает: «Хотите ли вы переписать ранее существующий файл?». Если мы не хотим, чтобы Excel при каждом сохранении спрашивал нас — подавляем это предупреждение.
  5. Сохраняем файл с помощью метода SaveAs. Обратите внимание, что мы пишем полный адрес, включая имя файла с расширением (при сохранении на рабочий стол
    ActiveWorkbook.SaveAs CreateObject(«WScript.Shell»). SpecialFolders(«Desktop») & «Отчет на 2016.xlsx»).
  6. Поскольку мы запретили показывать системные сообщения в пункте 4, мы должны включить их обратно. Если этого не сделать Excel будет подавлять все предупреждения, что не
    допустимо.

Как использовать

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

  1. Активируйте редактор Visual Basic, нажав ALT + F11.
  2. Щелкните правой кнопкой мыши имя проекта / рабочей книги в окне проекта.
  3. Выберите Insert➜Module.
  4. Введите или вставьте код во вновь созданном модуле.
  5. Измените имя листа, диапазон ячеек, и место сохранения файла.

Источник: excelpedia.ru

Как сделать активной книгу excel vba?

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

  1. Открытие существующей книги
  2. Создание новой книги
  3. Обращение к открытой книге
  4. Как закрыть книгу Excel из кода VBA

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

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

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

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

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

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

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

В кавычках указывается полный путь сохраняемого файла Excel, включая присваиваемое имя, в примере — это «test2.xls».

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

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

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

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

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

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

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

Если закрываемая книга редактировалась, а внесенные изменения не были сохранены, тогда при ее закрытии Excel отобразит диалоговое окно с вопросом: Вы хотите сохранить изменения в файле test1.xlsx? Чтобы файл был закрыт без сохранения изменений и вывода диалогового окна, можно воспользоваться параметром метода Close — SaveChanges:

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

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

Рис. 1. Столбцы и строки скрыты за исключением рабочего диапазона

Скачать заметку в формате Word или pdf, примеры в архиве (политика безопасности провайдера не позволяет загружать файлы Excel с поддержкой макросов)

Сохранение всех рабочих книг

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

Читайте также:  Как разделить в excel

Public Sub SaveAllWorkbooks()
Dim Book As Workbook
For Each Book In Workbooks
If Book.Path ” ” Then Book.Save
Next Book
End Sub

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

Сохранение и закрытие всех рабочих книг

Следующая процедура циклически просматривает коллекцию Workbooks. Программа сохраняет и закрывает все рабочие книги.

Sub CloseAllWorkbooks()
Dim Book As Workbook
For Each Book In Workbooks
If Book.Name ThisWorkbook.Name Then
Book.Close savechanges:=True
End If
Next Book
ThisWorkbook.Close savechanges:=True
End Sub

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

Частичное сокрытие элементов рабочего листа

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

Sub HideRowsAndColumns()
Dim row1 As Long, row2 As Long
Dim col1 As Long, col2 As Long
If TypeName(Selection) ” Range ” Then Exit Sub
‘ Если последняя строка либо последний столбец скрыты,
‘ отобразить все и выйти
If Rows(Rows.Count).EntireRow.Hidden Or _
Columns(Columns.Count).EntireColumn.Hidden Then
Cells.EntireColumn.Hidden = False
Cells.EntireRow.Hidden = False
Exit Sub
End If
row1 = Selection.Rows(1).Row
row2 = row1 + Selection.Rows.Count — 1
col1 = Selection.Columns(1).Column
col2 = col1 + Selection.Columns.Count — 1
Application.ScreenUpdating = False
On Error Resume Next
‘ Скрыть строки
Range(Cells(1, 1), Cells(row1 — 1, 1)).EntireRow.Hidden = True
Range(Cells(row2 + 1, 1), Cells(Rows.Count, _
1)).EntireRow.Hidden = True
‘ Скрыть столбцы
Range(Cells(1, 1), Cells(1, col1 — 1)).EntireColumn.Hidden = True
Range(Cells(1, col2 + 1), Cells(1, _
Columns.Count)).EntireColumn.Hidden = True
End Sub

Чтобы показать все строки и столбцы, встаньте на перекрестие строк и столбцов (выделено красным на рис. 1), и пройдите по меню: Главная –> Ячейки –> Формат –> Скрыть или отобразить –> Отобразить строки. Повторите этот путь, чтобы отобразить столбцы (рис. 2).

Рис. 2. Показать все строки и столбцы

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

Синхронизация выделенного диапазона на листах рабочей книги

Если вы работаете с рабочими книгами, состоящими из нескольких листов, то, вероятно, знаете, что Excel не может «синхронизировать» листы в рабочей книге. Другими словами, не существует автоматического способа сделать так, чтобы все листы имели одинаковые выделенные диапазоны и верхние левые ячейки. Макрос VBA, показанный ниже, берет за основу активный рабочий лист и выполняет следующие действия со всеми остальными рабочими листами в книге:

  • выделяет тот же диапазон, что и в активном листе;
  • задает ту же левую верхнюю ячейку, что и на активном листе (рис. 3).

Рис. 3. Синхронизация выделенного диапазона на листах рабочей книги

Sub SynchSheets()
‘ Дублирование выделенного диапазона активного листа
‘ и верхней левой ячейки активного диапазона на всех листах
If TypeName(ActiveSheet) ” Worksheet ” Then Exit Sub
Dim UserSheet As Worksheet, sht As Worksheet
Dim TopRow As Long, LeftCol As Integer
Dim UserSel As String
Application.ScreenUpdating = False
‘ Запоминание текущего листа
Set UserSheet = ActiveSheet
‘ Сохранение сведений об активной ячейке
TopRow = ActiveWindow.ScrollRow
LeftCol = ActiveWindow.ScrollColumn
UserSel = ActiveWindow.RangeSelection.Address
‘ Циклический обход рабочих листов
For Each sht In ActiveWorkbook.Worksheets
If sht.Visible Then ‘ пропуск скрытых листов
sht.Activate
Range(UserSel).Select
ActiveWindow.ScrollRow = TopRow
ActiveWindow.ScrollColumn = LeftCol
End If
Next sht
‘ Восстановление исходного положения
UserSheet.Activate
Application.ScreenUpdating = True
End Sub

По материалам книги Джон Уокенбах. Excel 2010. Профессиональное программирование на VBA. – М: Диалектика, 2013. – С. 348–351.

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

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

Еще пример — Скопировать диапазоны данных из активной открытой книги Excel нескольких листов (в нашем примере 3-х листов) в другую книгу, которая хранится в определенном месте. Данные будут вставлены как значения, плюс будут перенесены форматы ячеек.

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

Спасибо за внимание.

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

Решение(ия):

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

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

  • Создать новую книгу
  • Создание объекта для вновь созданной рабочей книги
Создать новую книгу

Вы можете использовать следующий код для создания новой книги и сохранения на диске C с помощью метода «Добавить».

  1. Метод добавления рабочей книги добавит новую книгу
  2. Сохранить как рабочую книгу метод сохранит активную книгу в определенном месте с указанным именем файла

Вывод: Вы должны увидеть недавно открытую книгу вместе с существующей книгой.

Инструкции:

  1. Откройте рабочую книгу Excel
  2. Нажмите Alt + F11, чтобы открыть редактор VBA.
  3. Вставьте новый модуль из меню «Вставка»
  4. Создайте приведенный выше код и вставьте в окно кода
  5. Нажмите F5, чтобы увидеть выход
  6. Вы должны увидеть недавно открытую книгу, как показано выше.
  7. Сохраните файл в виде макросъемки
Создание объекта для вновь созданной книги

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

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

  1. Откройте рабочую книгу Excel
  2. Нажмите Alt + F11, чтобы открыть редактор VBA.
  3. Вставьте новый модуль из меню «Вставка»
  4. Создайте приведенный выше код и вставьте в окно кода
  5. Нажмите F5, чтобы увидеть выход
  6. Вы должны увидеть недавно открытую книгу, как показано выше.
  7. Сохраните файл в виде макросъемки

Источник: word-office.ru