Как сделать книгу активной, зная имя книги?
Смотрите такжеP. S. На стопорится из-за того создать Новую книгу
Selection.Insert Shift:=xlToRight Подскажите пжл, как l&, r As Dim xlsWb As xlsApp As Object
ему имя «Новый тот не сработал
и т.п. При взяли имя активной файлов, к которому
момент, когда Вы: Обратиться к рабочей расширения файлов, тоPuLbKa ум пришло только что не переключается для помещения тудаSet nb = исправить.
Range Set xlsApp Excel.Workbook Dim xlsSh Dim xlsWb As
лист» Dim oRange правильно… этом ввод пользователя
книги и продолжайте после этого будет точно знаете, что книге можно по так
: Как сделать книгу создание буферной папки.Guest результатов, переключиться на Workbooks.AddSelection.Find(What:=»», After:=ActiveCell, LookAt:=xlPart).Select = GetObject(, «Excel.Application») As Excel.Worksheet Dim
Object Dim xlsSh
As Range ‘НаходимЕсли честно я блокируется, а указатель свой макрос.
применен макрос. Имена нужная книга активна, имени или поПри открытой книге активной зная имяJayBhagavan: Это были эксперименты неё и заполнитьSet ws =
RowFind_ll = Selection.Row Set xlsWb = a&, n&, b& As Object Dim
диапазон A1 в не знал эту мыши приобретает видЮрий М других открытых файлов
прописать
индексу. В чем
Workbooks(«Книга1.xls»).Activate книги?: Octavian.vs, так сохраните запустить макрос :) в ней Шапку(действие1). nb.Sheets(1)
next RowFind_ll
xlsApp.ActiveWorkbook Set xSh
Set xlsApp =
a&, n&, b&
CyberForum.ru
Активировать нужную книгу без привязки к наименованию книги (Макросы/Sub)
Книга1 Set oRange функцию, но как
песочных часов.: А как Excel и где хранятся200?’200px’:»+(this.scrollHeight+5)+’px’);»>ИмяКниги=Activeworkbook.Name проблема, лично мне,илиКазанский в корень дискаА так он Далее переключиться вWith ws//
= xlsWb.ActiveSheet Set GetObject(, «Excel.Application») For Set xlsApp = = oSheet.Range(«A1») oRange.Value обычно чувствуюешь иК сожалению. А должен догадаться КАКУЮ не известно.. По индексу, не понятно. КодWorkbooks(«Книга1.xlsx»).Activate: или в какую-нибудь должно быть: книгу «This» и.SelectПробовал указывать перед r = xSh.ActiveCell Each xlsWb In CreateObject(«Excel.Application») ‘ xlsApp.Visible = «Данные» ‘вносим пробуешь как будто Application.InputBox позволяет осуществлять именно из открытыхВ какую сторону
как советовал
Ваш должен выглядеть
Dendibar
PuLbKa
папку, отправьте и
Set sh =
выполнить действие2. Результаты
.Name = "Результат"
этой строчкой sh.select
txt = r.Text
xlsApp.Workbooks If xlsWb.Name
= True Set
в него данные
есть еще на выбор диапазона мышью
книг нужно активировать? смотреть?Udik
примерно так (макрорекордер
: Добрый день!
, напишите на Форуме
удалите после файл.
wb.Sheet(a) (наверное) действия 2 занести.Rows(«1:4»).Select
— тоже не ‘.ActiveCelltxt = GetObject(, = «Book.xlsx» Then xlsWb = ActiveWorkbook ‘сохраняем файл с природе такая функция только на тойjfdiba2004, тоже можно. Только пишет правильно, но
Вопрос может глупый,
имя активной книги.
Octavian.vs
Хотел чтобы этот
в новую книгу.
ActiveWindow.FreezePanes = True переключается
«Excel.Application»).ActiveCell?Созрел ещё один MsgBox «Нужная книга!»
n = xlsWb.Sheets.Count новым названием в ActiveWorkbook.Path помимо ThisWorkbook.Path! книге на которой: Спасибо.: Мне думается, что за индексами придётся кривовато) но только началPuLbKa: , спасибо, об цикл по листамRussiaEnd WithWindows(«Лист1″).Activate — Можно вопрос по этой End If Next Set xlsSh = указанное место наУ Вас тоже он был запущен.КАк все далеко нужно создать что-тоочень200?’200px’:»+(this.scrollHeight+5)+’px’);»>Sub tt()
свои попытки работы
: workbooks("Имя").activate
этом уже думал,
книги прошелся, поэтому
: Зачем активировать листы?
For Each sh
как-нибудь обойтись без "бородатой" теме:
Set xlsWb =
xlsWb.Sheets(1) a =
диск 'методом SaveAs
так иногда происходит?
Причем мышью можно
зашло однако. А
типа ListBox (TextBox)
тщательно следить.
Application.ScreenUpdating = False с макросами, подскажитеКазанский возможно есть более написал это: Запиши нужные листы In wb.Worksheets этой строчки, т.к.Как из VB6 xlsApp.ActiveWorkbook n = xlsSh.Cells(Rows.Count, 1).End(xlUp).Row Set oWbk.SaveAs «D:Книга1.xls» oWbk.Close Как бы чуешь? выбрать только если я думал ограничится в который будут
МВТWorkbooks(«Книга1»).Sheets(«Лист1»).Range(«9:9»).Copy Destination:=Workbooks(«Книга2»).Sheets(«Лист1»).Range(«A9») пожалуйста. Если повторяюсь: Я так делаю изящные решения?For Each sh в переменные -
Set sh = надо будет вытаскивать записать в активную xlsWb.Sheets.Count Set xlsSh xlsSh = xlsWb.Sheets(2) ‘закрываем файл Книга1Sergey112233 не установлен запрет паузой (например вызовом
собираться имена открытых
: Если Вы АБСОЛЮТНОApplication.ScreenUpdating = True
- извините, много он ругается
The_Prist In wb.Worksheets
и обращайся к
wb.Sheets(a(i)) имя книг и
ячейку Книги.xls формулу.
= xlsWb.Sheets(1) '
b = xlsSh.Cells(Rows.Count, Kill "D:Книга1.xls" 'удаляем
: Уважаемые форумчане. на Application.ScreenUpdating, как Inputboxa) в выполнении
файлов. Есть что-то
уверены, что у
End Sub
форумов сегодня облазил,
PuLbKa
: Нету. Невозможно отправитьПроверил — лист ним.{/post}{/quote}lastrow = sh.Cells(8, т.п. Мне казалосьВ VBA это
а дальше - 1).End(xlUp).Row End Sub файл Книга1 сЕсть такой код:
то долго не макроса и открытием их объединяющее, например,
excelworld.ru
VBA: В процессе выполнения макроса выбрать мышью активное окно (книгу)
Вас будет открытоDendibar
нашел близкие вопросы: Значит, используете неправильное что-то, что еще один только берет.
Так и делал! 5).End(xlDown).Row что это проще пишется так: косяк adzug диска ‘oWbk.Quit????????? End1. Открыта Книга113 мог понять почему другой книги, но расширение? Но я ровно 2 книги: Спасибо за ответы! и ответы, но имя. Выполните в
не создано. АМожет нужно так
Стопорится на томk = 4 делает.ActiveCell.FormulaR1C1 = «=R[+1]C+R[0]C[-2]»А = xlsWb.Sheets(1).Cells(Rows.Count, 1).End(xlUp).Row: Увы, не работает.. Sub2. С помощью не работает выбор не дает открыть с такими проблемами причем, название однойНаверное непонятно сформулировал на свой пример окне Immediate for именно так выглядит написать? моменте что указал ‘заполнение под «шапкой»
P.S.Заранее спасибо за
вот из VB6 Set xlsSh =
dzugdzug
кода создаем новую мышью, когда в другую книгу не сталкивался и
из них Вы вопрос: не могу применить each w in несохраненная книга -
For i = в теме.For RowFind_ll =
любой совет, решение. записать не получается xlsWb.Sheets(2) b =:: Активацию между книгами книгу Книга1. Здесь
другом макросе всеjfd это всего лишь знаете, то можноВ том месте эти ответы.
workbooks:debug.? w.name:nextПолучите список её пока вроде 0 To UBound(a)Hugo 8 To lastrow
Johny . Пробовал по xlsSh.Cells(Rows.Count, 1).End(xlUp).Row Enddzug смотрите в прилагаемом она еще не было хорошо. ): Пауза в выполнении моё предположение. Сейчас, так где мне макрорекордерПроблема вот в книг. Скопируйте нужное
как нет иind = 0: Так именно в ‘ цикл по: Я дико извиняюсь,
разному (см.мой пост Sub
: Проверил ещё раз. файле. сохранена на диске,Sergei_A макроса во время к сожалению, времени200?’200px’:»+(this.scrollHeight+5)+’px’);»>Sub tt() написал: Windows(«Книга 2.xlsx»).Activate чем: макрос, который
имя и вставьте пути до неёFor Each sh этой строке ссылки ТП но можно ли № 16)в т.ч.Устранил Не работает ..new_see
а находится в: Я не понял которой мышью тыкается мало, попробуйте что-нибудьDim wb1, wb2 , при пользовании я сделал будет в код.
тоже нет. Поэтому In wb.Worksheets на лист нет.RowFind_l = RowFind_ll узнать, что вообще и так:
Sub main() Dimdzug: Как создать новую
памяти ПК. о чем это нужная книга и подобное в Нете
As Workbook макросом, файл всегда применятся для эксель
Апострофф
сохранять книгу вRussia
Если бы былоn = 1
этот код делает?xlsWb.ActiveCell.FormulaR1C1 = «=R[+1]C+R[0]C[-2]»пробовал xlsApp As Excel.Application: Я в Excel книгу с заданным3. В ячейку Вы. она становится активной, поискать, а м.б.Dim Rng As будет называться по-разному, файлов с различными: Можете подсказать как любом случае надо.: типа так: ‘порядковый номерИ очень непонятно и с Dim xlsWb As запускал, там пашет, именем? Книги1 вносим данные.jfd все действия макроса более знающие люди Range поэтому не подходит, наименованиями, но код это сделать?Octavian.vsRussiash.Range(sh.Cells(RowFind_l, 4), sh.Cells(lastrow,Range(Cells(RowFind_l, 4), Cells(lastrow,
вот это: SetxlsApp Excel.Workbook Dim xlsSh сейчас посмотрю в
Например4. Сохраняем Книгу1: Хотел малой кровью идут в активной
помогут.Set wb1 = чтобы название было
ниже строго привязанCatstail
planetaexcel.ru
Запомнить директорию активной книги. VBA
: Спасибо! Просто были: хотел написать
4)).Select 4)).Select ‘ —> wb = ThisWorkbook., и с As Excel.Worksheet Dim VB6Sub CreateWorkbook() Set на диске. отделаться. Спасибо за книге. Если такУдачи! ThisWorkbook «Книга 2.xlsx», надо,
к копированию в
: 1: Открыть VBA
сомнения которые теперьHugo
вот это было Здесь почему то И где этаxSh a&, n&, b&dzug
NewWorkbook = Workbooks.Add5. Закрываем Книгу1. пример.
конечно возможно.k61With wb1.Sheets(«Лист1») чтобы название сюда
определенный файл («Книга — [Alt+F11] окончательно развеяны.: Это уже ближе. бы «так и стопорится из-за того «wb» используется?
.Сам задал вопрос, Set xlsApp =: Вылазит вот такая End Subсоздает книгу6. Удаляем Книгу1jfdber$erk: Код в Книге2
Set Rng = менялось в зависимости 2.xlsx»), а файлы
planetaexcel.ru
Как сделать активной новую Книгу?
2: Нажать [Ctrl+G]Strobery
Но ведь если
делал».
что не переключаетсяikki сам и отвечаю. GetObject(, «Excel.Application») Set «петрушка» на восьмой с именем по с диска.
:: В коде макросе
Sub www() Workbooks(«Книга1»).Activate Intersect(.UsedRange, .Range(«9:9»))
от названия файла.
будут называться по (или ищите в
: У меня естьFor Each shНо тогда селект
на другую книгу.: а вот эта
Методом «тыка» получилось xlsWb = xlsApp.ActiveWorkbook строке.. А на умолчанию,7. Закрываем Excel,Казанский, если указать ActiveWorkbook.ActiveSheet.range… End Sub
End With Находил на форумах другому. Если меняю меню окно книга1 и кнопка(Лист1) In wb.Worksheets уже не нужен,
Подскажите пжл, как строка у вас сделать так: n = xlsWb.Sheets.Count седьмой строке значениеа как изменить
в котором былаСпасибо, так и то код какjfdRng.Select решения, но почему-то Windows(«Книга 2.xlsx»).Activate наImmediate при нажатии которойто в sh разве что как исправить. нормально срабатывает?GetObject(, «Excel.Application»).ActiveCell.FormulaR1C1 = Set xlsSh = объектной переменной xlsWb имя, чтобы создалась создана Книга1. сделал. раз будет выполняться: Извините, создается впечатлениеFor Each wb2 не получается, ниже ActiveSheet.Activate, то копирование) Открываетия Форма1. уже есть ссылка финальное действие -Selection.Find(What:=»», After:=ActiveCell, LookAt:=xlPart).Selectlastrow = sh.Cells(8, «=R[+1]C+R[0]C[-2]» xlsWb.Sheets(1) a =
не присваивается.. не ‘Книга1’,Подскажите, пожалуйста, дваInter_E
CyberForum.ru
Как создать новую книгу с заданным именем?
в выбранной книге что Вы не In Workbooks пытаюсь вытащить название
происходит в «Книга
3: Скопировать вВ форме1 есть на лист, и показать юзеру результат.RowFind_ll = Selection.Row
5).End(xlDown).RowRussia xlsSh.Cells(xlsSh.Rows.Count, 1).End(xlUp).Row Set
Запускать из VB6..а например ‘Моя
вопроса.: Добрый день! (хотя вроде как
удосужились прочесть вопрос.
CyberForum.ru
Обработка активной книги Excel
If wb2.Name <> файла в ячейку 1.xlsx», так как окно текст бокс1 иSet sh =Russianext RowFind_llJohny: Добрый вечер!
xlsSh = xlsWb.Sheets(2)
dzug книга’1. В пунктеВ ходе выполнений это по умолчанию)Юрий М wb1.Name Then Exit А1 Книги 2, ее считает активной.Immediate кнопка1, при нажатии wb.Sheets(a(i)): Пробовал:next sh: lastrow = sh.Cells(8,Задаю листы. b = xlsSh.Cells(xlsSh.Rows.Count,
: Так?new_see 2, где Книга1 макроса, нужно запоминтьКазанский: Это почему? Вместо For дальше пытаюсь добавить Можно ли как-токод for each кнопки открываетсясовершенно лишнее, иRange(sh.Cells(RowFind_l, 4), sh.Cells(lastrow,ikki 5).End(xlDown).RowSet wb = 1).End(xlUp).RowEnd SubSub main() Dim
: NewWorkbook.Windows(1).Caption = ‘Моя еще не сохранена,
директорию где находиться: Создайте форму со
«Книга1» подставляем выбранноеNext содержимое этой ячейки
активировать книгу без w in workbooks:debug.?книга2 Я активирую даже вероятно только 4)).Select
: имхо, здесь имеемЧто за переменная ThisWorkbookСпасибо. Всё заработало. XL As New книга’ есть ли возможность
текущая книга. Затем
свойством ShowModal=False, надписью значение из Лист/КомбоБокса,
Application.ScreenUpdating = False туда куда надо, привязки к названию? w.name:next4: Поставить курсор книгу1, (делаю нужные мешает.и довольно дикую смесь «sh»?Sheets(a).Select Только вместо xlUp Excel.Application, xlsSh XL.Workbooks.Openспасибо активации Книги113, затем я создаю макросом
«Выберите книгу» и как предлагалось выше.Rng.Copy Destination:=wb2.Sheets(«Лист1»).Range(«A9») но все равно Например, активировать книгу, ввода на строку процедуры) и теперьИли одно, или
sh.Range(Cells(RowFind_l, 4), Cells(lastrow, результатов работы макрорекодераRussia
Sheets(a(i)).Columns(«E:F»).Cut надо написать -4162
App.Path & «Book.xlsx»dzug
активации Книги1. Т.е. новую книгу. Суть кнопкой. В кодеber$erkApplication.ScreenUpdating = True берет не нужную в которой установлен с введенным кодом мне нужно активировать другое. 4)).Select и каких-то (не: Извиняюсь пару строчекColumns(«A:A»).Select . Понять это Set XL =: Необходимо определить количество здесь передача активации в том что кнопки напишите: все открытые файлыEnd Sub ячейку, а ячейку курсор? Или по5: нажать Enter
книгу2 но так
Russia// очень понятных) попыток забыл захватить. ЯSelection.Insert Shift:=xlToRight помогла соседняя тема XL.ActiveWorkbook.Sheets.Application XL.Visible = заполненных строк первого между книгами возможна. я хотел сохранятьPrivate Sub CommandButton1_Click() ExcelВ противном случае из книги 1. какому-то иному признаку.Но есть подозрение,
как имя книги: Да я тожеПойду проверять. их доработки. писал. И вся
Set nb =Работа с excel
True Dim a&,
и второго, по2. Пункт7 - новую книгу туда Unload Me MainMacroSub ListAll() Dim соблаговолите ВНЯТНО объяснить,200?’200px’:»+(this.scrollHeight+5)+’px’);»> Подскажите пожалуйста. что сделать активной находится в текст об этом думал,
Hugoмного мусора - используется. И хотелось
Workbooks.Add ячейками n&, b& n индексу, листов активной
как закрыть Excel,
же где находилась End Sub wb As Workbook что именно ВыSub Тест()200?’200px’:»+(this.scrollHeight+5)+’px’);»>Sub Тест() Вы хотите неоткрытую боксе я не но просто макрос: Ну значит недопробовали:) те же ActiveWindow.FreezePanes бы что быSet ws =Ещё раз спасибо. = XL.Sheets.Count Set книги Excel (книга в котором создавалась
прежняя книга. Не, где MainMacro For Each wb
делаете и что’
’ книгу? знаю как это не работал, вотТолько я в = True, .Rows(«1:4»).Select когда я писал
nb.Sheets(1)Не могу прочитать xlsSh = XL.Sheets(1) открыта). На седьмой Книга1, а Книга113 могу придумать эту — макрос, который
In Workbooks MsgBox ожидаете получить в
’ Тест макрос’ Тест макрос
CyberForum.ru
VBA Как переключать окна/книги?
Pavel55 сделать.
я и подумал,
Вашем примере нигде и др.
sh.select — становилась
With ws
название подключаемой библиотеки..
a = xlsSh.Cells(Rows.Count,
строке переменной xlsWb оставалась бы открытой.
идею… работает с активной
wb.Name Next End
результате
’
’
: Казанский совершенно прав.
Вот код
что может нужно не видел, где
возможно, проще озвучить активной книга ThisWorkbook,
.Select Напишате пожалуста название 1).End(xlUp).Row Set xlsSh , значение не
Здесь, видимо, тот
Заранее благодарен. книгой.
SubDendibar’’ Но при условии,Private Sub CommandButton1_Click() задать. эта sh определяется…
саму задачу?
а не получается
.Name = «Результат»
отдельно.Microsoft Excel 12.0
= XL.Sheets(2) b присваивает ??? же вопрос активации.С уважением, Inter_E
Форма запускается стартовымjfd: StoTisteg, большое спасибо!Range (A1) =Windows(«Книга 1.xlsx»).Activate что книга открыта. ‘Открываю Книгу2 DimСпасибо, Hugo!
RussiaRussia
— не переключается.Rows(«1:4»).Select Object LibraryРазобрался с = xlsSh.Cells(Rows.Count, 1).End(xlUp).RowСпасибо за ответ.
Как Вы понимаете,Alex_ST макросом из одной: Юрий М, потому Вашим способом все
ActiveWorkbook.NameRows(«9:9»).Select Если книга не wb As Workbook
Юрий М: Сообщение от 05.05.2011,
: Блин. Хорошо. Как на окно этойActiveWindow.FreezePanes = True
библиотекой..Спасибо.Да простят меня End Sub
Sub main() Dim действия с Книгой1: ThisWorkbook.Path команды что этот способ получилось.Windows(«Книга 1.xlsx»).ActivateSelection.Copy открыта — ее Set wb =: Возвращаясь к переключению 17:28 сделать активным этот книги, остается вEnd With
администраторы за поднятиеАпострофф xlsApp As Object должны происходить вответ > Alex_STUserForm1.Show очевиден и предполагаетВсем остальным тожеRows(«9:9»).SelectWindows(«Книга 2.xlsx»).Activate
нужно сначала открыть, Workbooks.Open(Filename:=’C: ‘ &
между книгами:
в середине указывается.
лист? А потом
новой книге и
lastrow = sh.Cells(8, темы с «двухлетней
: В том то Dim xlsWb As
скрытом от пользователя
: Спасибо, я изменил
Юрий М
знание названия файла
большое спасибо за
Selection.Copy
Rows(«9:9»).Select а уж затем
TextBox1 & ‘.xls’)Windows(«Нужная_Книга.xls»).Activate
Hugo другой лист из
выдает ошибку. 5).End(xlDown).Row
бородой» , но и дело, что Object Dim xlsSh режиме. Постоянно открыта
на «ActiveWorkbook.Path» и
: Попробуйте тогда .Wait нужной книги.
помощь!Windows(«Range (A1).Value»).ActivateActiveSheet.Paste активизировать. ‘ Workbooks(‘Книга1.xls’).Worksheets(‘Лист1’).Activate ‘ИмяOctavian.vs: Да, там я другой книги (ThisWorkbook)?
lastrow = sh.Cells(8,
k = 4
вопрос стопроцентно по
книга Excel открыта
As Object Dim только Книга113. кажется все будетА Application.InputBox неА кроме полученияjfdRows(«9:9»).Select
Range(«J5»).Selectмне кажется. тут последней заполненой ячейки: Добрый день,
не вникал.Johny
5).End(xlDown).Row — это ‘заполнение под «шапкой» этой теме. и название у a&, n&, b&Sub Кнопка1_Щелкнуть() Dim
работать положенно. Сейчас пробовали?
списка всех открытых: Добрый день!ActiveSheet.PasteEnd Sub
ещё важную роль Const iRow2 =На просторах интернетаНо вот это: ikki, Согласен полностью. мои опыты, чтобы
For RowFind_ll =Открыта книга Эксель, неё может быть Set xlsApp = oExcel As New окончательно проверю!jfd фалов и выбораБанальная вроде вещь,Range(«J5»).SelectОформляйте коды тегами играет указано ли
65536: iClm = нашел код отправки как понимать?russia, попытайтесь ещё производил операции с 8 To lastrow
на листе выделена разное. Обращаться надо CreateObject(«Excel.Application») ‘ xlsApp.Visible Excel.Application ‘Запускаем Excel
Inter_E: Нашел что Wait из него одного, а потратил кучу
End Sub (кнопка #)
расширение файла. ‘A’ iRws =
сообщения с вложениемFor Each sh раз описать, для
листом sh (книге ‘ цикл по одна ячейка. к АКТИВНОЙ книге.. = True Set
oExcel.Visible = True: Спасибо, все нормально
— других способов нет?
времени и не
StoTistegUdik
На Windows, где
Columns(iClm).Rows(iRow2).End(xlUp).Row ??????????????????????????? ActiveWorkbook.SaveAs
из Excel, но In wb.Worksheets
чего нужен сей где находиться макрос). ТПКак из VB
В Вашем коде xlsWb = xlsApp.ActiveWorkbook ‘Делаем его видимым
пошло, с АктивВоркБук.Пазс
это метод позволяет приостановитьSergei_A нашел ничего.
: Как он будет: по номеру типа
в найстройках не Filename:= _ ‘C:123
т. к. активнаяSet sh =
макрос? Работает. Но еслиRowFind_l = RowFind_ll
6 узнать что выдаёт ошибку на n = xlsWb.Sheets.Count Dim oWbk AsТолькоУчусь работу Excel на
: Я бы сделалЕсть файл1 с называться у Вас,
такого указано — отображать
‘ & Cells(iRws, книга является вновь
wb.Sheets(a(i))Johny задавать sh.cells(…)… -n = 1
записано в активной строке:
Set xlsSh = Excel.Workbook ‘Создаем новую
: Лучше как Алексей указанное вами время,
немодальную форму (похожую макросом (кроме макроса
ведомо только Вам.
200?’200px’:»+(this.scrollHeight+5)+’px’);»> расширения файлов нужно
iClm) & ‘.xls’ созданной и не
Johny: Зачем активировать листы?
то выдает ошибку ‘порядковый номер
ячейке ?
Dim XL As xlsWb.Sheets(1) a =
книгу Книга1 Set предложил, так как сняв нагрузку с
на msgbox) с ничего не имеет),
Если Вы знаетеPublic Sub test() делать так
End SubЗаранее благодарен имеет своего «реального»
: Здесь имеется ввиду Запиши нужные листы на подобии вышеописанного.Range(Cells(RowFind_l, 4), Cells(lastrow,Пробовал так: New Excel.Application, xlsSh xlsSh.Cells(Rows.Count, 1).End(xlUp).Row Set oWbk = oExcel.Workbooks.Add()
это «…текущая книга…».
процессора. Используется для текстом « есть также другие
имя книги, то
planetaexcel.ru
VBA отправка созданной (активной) книги через outlook
Debug.Print Application.Workbooks(1).NameПри открытой книге
||||||Strobery|||||| адреса, строчка кода активный лист. в переменные -Set wb = 4)).Select ‘ —>Dim xSh Asdzug xlsSh = xlsWb.Sheets(2) Dim oSheet AsInter_E демонстраций — чтобыВыберите одну из открытых
открытые файлы. После так и пишитеEnd Sub
Workbooks(«Книга1»).ActivateMasalov ( .Attachments.Add ActiveWorkbook.FullName)Johny и обращайся к ThisWorkbook
Здесь почему то Excel.Worksheet, xlsApp As: b = xlsSh.Cells(Rows.Count, Excel.Worksheet Set oSheet
: Да, спасибо, но пользователь успел увидеть, книг Excel, и запуска макроса из — Workbooks(). Ещётолько в номерахА если вы: например: не может подтянуть: Range(Cells(RowFind_l, 4), Cells(lastrow, ним.Sheets(a).Select
стопорится из-за того Excel.Application, xlsWb Asdzug 1).End(xlUp).Row End Sub
planetaexcel.ru
Активация книг с именем находящимся в текстбоксе (Excel)
= oWbk.Worksheets.Item(«Лист1») ‘Находим у меня код что происходит, для нажмите ОК. файл1 надо выбрать(указать
один способ — не запутайтесь в настройках WindowsWindows(Me.TextBox1.Value).Activate
файл, может есть 4)).Select ‘ —>RussiaSheets(a(i)).Columns(«E:F»).Cut
что не переключается Excel.Workbook, xlsSh As: Sub main() Dimdzug Лист1 oSheet.Name = макроса расположен на
ожидания завершения выполнения
» и одной кнопкой мышью, сделать активным) завести переменную, скажем,. (в свойствах папки)то, нет? какие-нибудь пути решения? Здесь почему то: Задача. Мне необходимоColumns(«A:A»).Select на другую книгу. Excel.Worksheet Dim txt$, xlsApp As Excel.Application: Sub main() Dim «Новый лист» ‘Присваиваем Personal.book и поэтому какой-либо внешней операции
ОК. По кнопке один из открытых
ИмяКниги и в
МВТ
CyberForum.ru
указали — отображать
Check if your variable Filename
contains the correct filename. (e.g. Sample.xls)
Also check if input_path_1
and input_file_1
have correct values.
If they have it should be like this:
Workbooks(Filename).Activate
Now, if you need to append the extension name (e.g. Filename
value is just Sample):
Workbooks(Filename & ".xls").Activate
The argument should always be in the form of string and should be the complete filename (with extension). Although numerals (index) is also accepted, you can’t be sure what index refer to what workbook. Better yet, assign it to a variable.
Dim otherWB As Workbook
Set otherWB = Workbooks(Filename)
'Set otherWB = Workbooks(Filename & ".xls") '~~> for second scenario above
Edit1: From comment, if Filename
contains the fullpath, then this might work.
Dim Filename1 As String
Filename1 = Split(Filename, "")(UBound(Split(Filename, "")))
Workbooks(Filename1).Activate
In this Excel VBA Tutorial, you learn how to activate workbooks with macros.
This Excel VBA Activate Workbook Tutorial is currently under development. Subscribe to the Power Spreadsheets Newsletter to get future updates to this Excel VBA Tutorial.
Use the following Table of Contents to navigate to the Section you’re interested in.
VBA Code to Activate This Workbook
To activate this workbook, use the following statement in the applicable procedure.
Process to Activate This Workbook with VBA
- Refer to this workbook (the workbook where the macro is stored).
- Activate the workbook.
Main VBA Constructs Used to Activate This Workbook
(1) Application.ThisWorkbook property.
Returns a Workbook object representing the workbook where the macro is stored (the workbook where the macro is running).
(2) Workbook object.
Represents an Excel workbook.
(3) Workbook.Activate method.
Activates the (first) window associated with a workbook.
Macro Example to Activate This Workbook
The macro below does the following:
- Activate this workbook (the workbook where the macro is stored).
- Maximize the active window.
Sub ActivateThisWorkbook() 'Source: https://powerspreadsheets.com/ 'For further information: https://powerspreadsheets.com/excel-vba-activate-workbook/ 'This procedure: '(1) Activates this workbook (the workbook where the macro is stored) '(2) Maximizes the active window 'Activate this workbook ThisWorkbook.Activate 'Maximize the active window ActiveWindow.WindowState = xlMaximized End Sub
Effects of Executing Macro Example to Activate This Workbook
The image below illustrates the effects of using the macro example. In this example:
- 2 workbooks (“Excel VBA Activate Workbook” and “Book1”) are open.
- The “Book1” workbook is the active workbook.
- The macro example is stored in the “Excel VBA Activate Workbook” workbook.
When the macro is executed, Excel:
- Activates this workbook (“Excel VBA Activate Workbook”; the workbook where the macro example is stored); and
- Maximizes the active window.
Excel VBA Activate Workbook by Filename
VBA Code to Activate Workbook by Filename
To activate a workbook by filename, use the following structure/template in the applicable statement.
Workbooks("Filename").Activate
Process to Activate Workbook by Filename with VBA
- Refer to the workbook to activate by filename.
- Activate the applicable workbook.
Main VBA Constructs Used to Activate Workbook by Filename
(1) Application.Workbooks property.
Returns a Workbooks collection representing all open workbooks.
(2) Workbooks object.
Represents all open workbooks.
(3) Workbooks.Item property.
Returns a specific Workbook object from the applicable Workbooks collection.
(4) Workbook object.
Represents an Excel workbook.
(5) Workbook.Activate method.
Activates the (first) window associated with a workbook.
Cues to Activate Workbook by Filename with VBA
- Consider whether you must wrap the workbook filename in double quotes and parentheses ((“Filename”)).
- As a general rule: Include the complete filename, including file extension (for ex., “Filename.xlsm”), of a previously saved workbook.
Macro Example to Activate Workbook by Filename
The macro below does the following:
- Activate the workbook with filename “Excel VBA Activate Workbook.xlsm”.
- Maximize the active window.
Sub ActivateWorkbookByFilename() 'Source: https://powerspreadsheets.com/ 'For further information: https://powerspreadsheets.com/excel-vba-activate-workbook/ 'This procedure: '(1) Activates the workbook with filename "Excel VBA Activate Workbook.xlsm" '(2) Maximizes the active window 'Activate the workbook with filename "Excel VBA Activate Workbook.xlsm" Workbooks("Excel VBA Activate Workbook.xlsm").Activate 'Maximize the active window ActiveWindow.WindowState = xlMaximized End Sub
Effects of Executing Macro Example to Activate Workbook by Filename
The image below illustrates the effects of using the macro example. In this example:
- 2 workbooks (“Excel VBA Activate Workbook.xlsm” and “Book1”) are open.
- The “Book1” workbook is the active workbook.
When the macro is executed, Excel:
- Activates the workbook with filename “Excel VBA Activate Workbook.xlsm”; and
- Maximizes the active window.
Excel VBA Activate Workbook with Partial Filename (with Left, Mid, or Right Functions)
VBA Code to Activate Workbook with Partial Filename (with Left, Mid, or Right Functions)
To activate a workbook with partial filename (with the Left, Mid, or Right functions), use the following structure/template in the applicable procedure.
VariableDeclarationStatement iWorkbook As Workbook For Each iWorkbook In Application.Workbooks If VbaBuiltInTextFunction(TextFunctionArgumentsIncludingWorkbookName) = "PartialWorkbookFilename" Then iWorkbook.Activate End If Next iWorkbook
Process to Activate Workbook with Partial Filename (with Left, Mid, or Right Functions)
- Declare iteration object variable (usually of the Workbook object data type).
- Loop through all open workbooks.
- Test whether the applicable part (for example, the beginning or end) of the name of the workbook (the loop is currently iterating through) matches the (known) partial filename (of the workbook to activate).
- If the condition is met (the applicable part of the name of the applicable workbook matches the partial filename of the workbook to activate), activate the workbook (the loop is currently iterating through).
Main VBA Constructs Used to Activate Workbook with Partial Filename (with Left, Mid, or Right Functions)
(1) Variable declaration statement.
One of the following 4 statements:
- Dim: Declares variables and allocates storage space.
- Private:
- Used at the module level.
- Declares module-level variables and allocates storage space.
- Public:
- Used at the module level.
- Declares global variables and allocates storage space.
- Static: Declares static variables and allocates storage space.
(2) Workbook object.
Represents an Excel workbook.
(3) For Each… Next statement.
Repeats a set of statements for each element in an array or collection.
(4) Application.Workbooks property.
Returns a Workbooks collection representing all open workbooks.
(5) Workbooks object.
Represents all open workbooks.
(6) Object variable.
A named storage location containing data (a reference to an object) that can be modified during procedure execution.
(7) If… Then… Else statement.
Conditionally executes a set of statements, depending on the value returned by a logical expression.
(8) VBA built-in text function.
One (or more) of the following VBA built-in text functions:
- Left: Returns a string containing a specific number of characters from the start (left side) of a string.
- Mid: Returns a string containing a specific number of characters from the middle (starting at a specific position) of a string.
- Right: Returns a string containing a specific number of characters from the end (right side) of a string.
- InStr: Returns the position of the first occurrence of one string inside another string.
(9) String.
A sequence of contiguous characters.
(10) Workbook.Activate method.
Activates the (first) window associated with a workbook.
Cues to Activate Workbook with Partial Filename (with Left, Mid, or Right Functions) with VBA
- Consider explicitly declaring:
- The iteration object variable.
- The data type (usually Workbook object) of the iteration object variable.
- As a general rule, declare the iteration object variable:
- Using the Dim statement; and
- As of the Workbook object data type.
- If the scope of the iteration object variable is module-level or global, follow the applicable rules for (module-level or global) variable declaration.
- Depending on the case you deal with, you may need to work with different versions of the If… Then… Else statement. Consider the following 4 basic versions of the If… Then… Else statement:
- If… Then. This is the version I use in the structure/template above.
- If… Then… Else.
- If… Then… ElseIf.
- If… Then… ElseIf… Else.
- The appropriate VBA built-in text function you work with depends on the case you deal with (for example, the structure and position of the known partial filename).
- As a general rule:
- The (main) string you use as one of the arguments of the VBA built-in text function (the string from which you extract characters) is the name of the applicable workbook (the For Each… Next statement is currently iterating through).
- Work with the Workbook.Name property to obtain the name of the applicable workbook. The Workbook.Name property returns a workbook’s name.
- When specifying the (known) partial filename, consider whether you must wrap this partial filename in double quotes (“PartialWorkbookFilename”).
Macro Example to Activate Workbook with Partial Filename (with Left, Mid, or Right Functions)
The macro below does the following:
- Declare an object variable (iWorkbook) of the Workbook object data type.
- Loop through all open workbooks.
- Test whether the first/leftmost 9 letters of the name of the workbook (the loop is currently iterating through) spell “Excel VBA”.
- If the condition is met (the first/leftmost 9 letters of the name of the applicable workbook spell “Excel VBA”), activate the workbook (the loop is currently iterating through).
Sub ActivateWorkbookPartialFilenameLeftMidRight() 'Source: https://powerspreadsheets.com/ 'For further information: https://powerspreadsheets.com/excel-vba-activate-workbook/ 'Declare iteration object variable Dim iWorkbook As Workbook 'Loop through all open workbooks For Each iWorkbook In Application.Workbooks 'Do the following: '(1) Test whether the first/leftmost 9 letters of the name of the workbook (the loop is currently iterating through) spell "Excel VBA" '(2) If the condition is met, activate the workbook (the loop is currently iterating through) If Left(iWorkbook.Name, 9) = "Excel VBA" Then iWorkbook.Activate Next iWorkbook End Sub
Effects of Executing Macro Example to Activate Workbook with Partial Filename (with Left, Mid, or Right Functions)
The image below illustrates the effects of using the macro example. In this example:
- 10 workbooks (“Excel VBA Activate Workbook.xlsm”, and “Book1” through “Book9”) are open.
- The “Book1” workbook is the active workbook.
When the macro is executed, Excel activates the workbook whose filename (Excel VBA Activate Workbook.xlsm) contains the (known) partial filename (Excel VBA).
Excel VBA Activate Workbook with Partial Filename (with InStr Function)
VBA Code to Activate Workbook with Partial Filename (with InStr Function)
To activate a workbook with partial filename (with the InStr function), use the following structure/template in the applicable procedure.
VariableDeclarationStatement iWorkbook As Workbook For Each iWorkbook In Application.Workbooks If InStr(1, iWorkbook.Name, "PartialWorkbookFilename", StringCompareMethodConstant) > 0 Then iWorkbook.Activate End If Next iWorkbook
Process to Activate Workbook with Partial Filename (with InStr Function)
- Declare iteration object variable (usually of the Workbook object data type).
- Loop through all open workbooks.
- Test whether the name of the workbook (the loop is currently iterating through) contains the (known) partial filename (of the workbook to activate).
- If the condition is met (the name of the applicable workbook contains the partial filename of the workbook to activate), activate the workbook (the loop is currently iterating through).
Main VBA Constructs Used to Activate Workbook with Partial Filename (with InStr Function)
(1) Variable declaration statement.
One of the following 4 statements:
- Dim: Declares variables and allocates storage space.
- Private:
- Used at the module level.
- Declares module-level variables and allocates storage space.
- Public:
- Used at the module level.
- Declares global variables and allocates storage space.
- Static: Declares static variables and allocates storage space.
(2) Workbook object.
Represents an Excel workbook.
(3) For Each… Next statement.
Repeats a set of statements for each element in an array or collection.
(4) Application.Workbooks property.
Returns a Workbooks collection representing all open workbooks.
(5) Workbooks object.
Represents all open workbooks.
(6) Object variable.
A named storage location containing data (a reference to an object) that can be modified during procedure execution.
(7) If… Then… Else statement.
Conditionally executes a set of statements, depending on the value returned by a logical expression.
(8) InStr function.
Returns the position of the first occurrence of one string inside another string.
Accepts the following 4 arguments:
- start:
- Optional argument.
- The starting position for the search.
- If omitted, the search begins at the first character.
- string1:
- Required argument.
- The string you search in.
- string2:
- Required argument.
- The string you search for.
- compare:
- Optional argument.
- The string comparison method.
- If omitted, the module’s Option Compare setting applies.
(9) Workbook.Name property.
Returns a workbook’s name.
(10) String.
A sequence of contiguous characters.
(11) Greater than operator (>).
Compares 2 expressions and returns True, False, or Null as follows:
- True: If Expression1 > Expression2.
- False: If Expression1 <= Expression2.
- Null: If (either) Expression1 or Expression2 are Null.
(12) Workbook.Activate method.
Activates the (first) window associated with a workbook.
Cues to Activate Workbook with Partial Filename (with InStr Function) with VBA
- Consider explicitly declaring:
- The iteration object variable.
- The data type (usually Workbook object) of the iteration object variable.
- As a general rule, declare the iteration object variable:
- Using the Dim statement; and
- As of the Workbook object data type.
- If the scope of the iteration object variable is module-level or global, follow the applicable rules for (module-level or global) variable declaration.
- Depending on the case you deal with, you may need to work with different versions of the If… Then… Else statement. Consider the following 4 basic versions of the If… Then… Else statement:
- If… Then. This is the version I use in the structure/template above.
- If… Then… Else.
- If… Then… ElseIf.
- If… Then… ElseIf… Else.
- As a general rule, set the arguments of the InStr function as follows:
- start: 1.
- string1: The name of the workbook the loop is currently iterating through, as returned by the Workbook.Name property.
- string2: The (known) partial filename.
- compare: vbBinaryCompare. vbBinaryCompare (usually) results in a case sensitive comparison.
- When specifying the (known) partial filename (as string2 argument of the InStr function), consider whether you must wrap this partial filename in double quotes (“PartialWorkbookFilename”).
Macro Example to Activate Workbook with Partial Filename (with InStr Function)
The macro below does the following:
- Declare an object variable (iWorkbook) of the Workbook object data type.
- Loop through all open workbooks.
- Test whether the name of the workbook (the loop is currently iterating through) contains “Excel VBA”.
- If the condition is met (the name of the applicable workbook contains “Excel VBA”), activate the workbook (the loop is currently iterating through).
Sub ActivateWorkbookPartialFilenameInStr() 'Source: https://powerspreadsheets.com/ 'For further information: https://powerspreadsheets.com/excel-vba-activate-workbook/ 'Declare iteration object variable Dim iWorkbook As Workbook 'Loop through all open workbooks For Each iWorkbook In Application.Workbooks 'Do the following: '(1) Test whether the name of the workbook (the loop is currently iterating through) contains "Excel VBA" '(2) If the condition is met, activate the workbook (the loop is currently iterating through) If InStr(1, iWorkbook.Name, "Excel VBA", vbBinaryCompare) > 0 Then iWorkbook.Activate Next iWorkbook End Sub
Effects of Executing Macro Example to Activate Workbook with Partial Filename (with InStr Function)
The image below illustrates the effects of using the macro example. In this example:
- 10 workbooks (“Excel VBA Activate Workbook.xlsm”, and “Book1” through “Book9”) are open.
- The “Book1” workbook is the active workbook.
When the macro is executed, Excel activates the workbook whose filename (Excel VBA Activate Workbook.xlsm) contains the (known) partial filename (Excel VBA).
Excel VBA Activate Workbook Using Wildcard
VBA Code to Activate Workbook Using Wildcard
To activate a workbook using a wildcard, use the following structure/template in the applicable procedure.
VariableDeclarationStatement Dim iWorkbook As Workbook For Each iWorkbook In Application.Workbooks If iWorkbook.Name Like "WorkbookNameUsingWildcard" Then iWorkbook.Activate End If Next iWorkbook
Process to Activate Workbook Using Wildcard
- Declare iteration object variable (usually of the Workbook object data type).
- Loop through all open workbooks.
- Test whether the name of the workbook (the loop is currently iterating through) is like the (known) filename (of the workbook to activate). Use wildcards (as necessary) to specify the filename of the workbook to activate.
- If the condition is met (the name of the applicable workbook is like the filename -including any wildcards- of the workbook to activate), activate the workbook (the loop is currently iterating through).
Main VBA Constructs Used to Activate Workbook Using Wildcard
(1) Variable declaration statement.
One of the following 4 statements:
- Dim: Declares variables and allocates storage space.
- Private:
- Used at the module level.
- Declares module-level variables and allocates storage space.
- Public:
- Used at the module level.
- Declares global variables and allocates storage space.
- Static: Declares static variables and allocates storage space.
(2) Workbook object.
Represents an Excel workbook.
(3) For Each… Next statement.
Repeats a set of statements for each element in an array or collection.
(4) Application.Workbooks property.
Returns a Workbooks collection representing all open workbooks.
(5) Workbooks object.
Represents all open workbooks.
(6) Object variable.
A named storage location containing data (a reference to an object) that can be modified during procedure execution.
(7) If… Then… Else statement.
Conditionally executes a set of statements, depending on the value returned by a logical expression.
(8) Workbook.Name property.
Returns a workbook’s name.
(9) Like operator.
Compares a string against a pattern and returns True, False, or Null as follows:
- True: If the string matches the pattern.
- False: If the string doesn’t match the pattern.
- Null: If (either) the string or the pattern are Null.
You can combine the following elements when specifying the pattern:
- Wildcard characters.
- Character lists.
- Character ranges.
(10) String.
A sequence of contiguous characters.
(11) Workbook.Activate method.
Activates the (first) window associated with a workbook.
Cues to Activate Workbook Using Wildcard with VBA
- Consider explicitly declaring:
- The iteration object variable.
- The data type (usually Workbook object) of the iteration object variable.
- As a general rule, declare the iteration object variable:
- Using the Dim statement; and
- As of the Workbook object data type.
- If the scope of the iteration object variable is module-level or global, follow the applicable rules for (module-level or global) variable declaration.
- Depending on the case you deal with, you may need to work with different versions of the If… Then… Else statement. Consider the following 4 basic versions of the If… Then… Else statement:
- If… Then. This is the version I use in the structure/template above.
- If… Then… Else.
- If… Then… ElseIf.
- If… Then… ElseIf… Else.
- Use the Like operator to compare the string returned by the Workbook.Name property (the name of the workbook the loop is currently iterating through) against a string with the filename (including any wildcards) of the workbook to activate.
- Use the following wildcards when specifying the pattern the Like operator works with:
- ?: Represents any single character.
- *: Represents any sequence of 0 or more characters.
- When specifying the pattern the Like operator works with (the filename -including any wildcards- of the workbook to activate), consider whether you must wrap this partial filename in double quotes (“WorkbookNameUsingWildcard”).
Macro Example to Activate Workbook Using Wildcard
The macro below does the following:
- Declare an object variable (iWorkbook) of the Workbook object data type.
- Loop through all open workbooks.
- Test whether the name of the workbook (the loop is currently iterating through) has the following structure:
- Starts with “Excel VBA”;
- Followed by any sequence of characters; and
- Ends with the “.xlsm” file extension.
- If the condition is met (the name of the applicable workbook is like the specified filename, including the * wildcard), activate the workbook (the loop is currently iterating through).
Sub ActivateWorkbookUsingWildcard() 'Source: https://powerspreadsheets.com/ 'For further information: https://powerspreadsheets.com/excel-vba-activate-workbook/ 'Declare iteration object variable Dim iWorkbook As Workbook 'Loop through all open workbooks For Each iWorkbook In Application.Workbooks 'Do the following: '(1) Test whether the name of the workbook (the loop is currently iterating through) has the following structure: '(1) Starts with "Excel VBA" '(2) Followed by any sequence of characters '(3) Ends with the ".xlsm" file extension '(2) If the condition is met, activate the workbook (the loop is currently iterating through) If iWorkbook.Name Like "Excel VBA*.xlsm" Then iWorkbook.Activate Next iWorkbook End Sub
Effects of Executing Macro Example to Activate Workbook Using Wildcard
The image below illustrates the effects of using the macro example. In this example:
- 10 workbooks (“Excel VBA Activate Workbook.xlsm”, and “Book1” through “Book9”) are open.
- The “Book1” workbook is the active workbook.
When the macro is executed, Excel activates the workbook whose filename (Excel VBA Activate Workbook.xlsm) has the following structure:
- Starts with “Excel VBA”;
- Followed by any sequence of characters; and
- Ends with the “.xlsm” file extension.
Excel VBA Activate Workbook and Worksheet
VBA Code to Activate Workbook and Worksheet
To activate a workbook and a worksheet, use the following structure/template in the applicable statement.
WorkbookObjectReference.WorksheetObjectReference.Activate
Process to Activate Workbook and Worksheet with VBA
- Refer to the workbook and worksheet to activate.
- Activate the applicable worksheet.
Main VBA Constructs Used to Activate Workbook and Worksheet
(1) Workbook object.
Represents an Excel workbook.
(2) Workbook.Worksheets property.
Returns a Sheets collection representing all worksheets in the applicable workbook.
(3) Worksheets object.
Represents all worksheets in the applicable workbook.
(4) Worksheets.Item property.
Returns a specific Worksheet object from the applicable Worksheets collection.
(5) Worksheet object.
Represents a worksheet.
(6) Worksheet.Activate method.
Activates the applicable worksheet.
Cues to Activate Workbook and Worksheet with VBA
- Work with (among others) one of the following VBA constructs (or groups of constructs) to return a Workbook object:
- Application.Workbooks property, Workbooks object, and Workbooks.Item property.
- Application.ThisWorkbook property.
- As a general rule, identify the applicable Worksheet object (inside the Worksheets collection) using one of the following:
- An index number. The index number:
- Represents the position of the Worksheet object in the Worksheets collection.
- Is:
- Wrapped in parentheses ((IndexNumber)).
- Included after the reference to the Worksheets collection (Worksheets(IndexNumber)).
- The Worksheet object’s name (Worksheet.Name property). The name is:
- Wrapped in:
- Double quotes (“WorksheetName”); and
- Parentheses ((“WorksheetName”)).
- Included after the reference to the Worksheets collection (Worksheets(“WorksheetName”)).
- Wrapped in:
- An index number. The index number:
- You can (also) use a Worksheet object’s CodeName property (Worksheet.CodeName property) to refer to the applicable worksheet.
Macro Example to Activate Workbook and Worksheet
The macro below does the following:
- Activate:
- The “Excel VBA Activate Workbook.xlsm” workbook; and
- The “Activate Workbook and Worksheet” worksheet.
- Maximize the active window.
Sub ActivateWorkbookAndWorksheet() 'Source: https://powerspreadsheets.com/ 'For further information: https://powerspreadsheets.com/excel-vba-activate-workbook/ 'This procedure: '(1) Activates the "Activate Workbook and Worksheet" worksheet in the "Excel VBA Activate Workbook.xlsm" workbook '(2) Maximizes the active window 'Activate the "Activate Workbook and Worksheet" worksheet in the "Excel VBA Activate Workbook.xlsm" workbook Workbooks("Excel VBA Activate Workbook.xlsm").Worksheets("Activate Workbook and Worksheet").Activate 'Maximize the active window ActiveWindow.WindowState = xlMaximized End Sub
Effects of Executing Macro Example to Activate Workbook and Worksheet
The image below illustrates the effects of using the macro example. In this example:
- 2 workbooks (“Excel VBA Activate Workbook.xlsm” and “Book1”) are open.
- The “Book1” workbook is the active workbook.
- The “Sheet1” worksheet is the active worksheet in both (“Excel VBA Activate Workbook.xlsm” and “Book1”) workbooks.
When the macro is executed, Excel:
- Activates:
- The “Excel VBA Activate Workbook.xlsm” workbook; and
- The “Activate Workbook and Worksheet” worksheet.
- Maximizes the active window.
Excel VBA Activate Workbook and Chart Sheet
VBA Code to Activate Workbook and Chart Sheet
To activate a workbook and a chart sheet, use the following structure/template in the applicable statement.
WorkbookObjectReference.ChartObjectReference.Activate
Process to Activate Workbook and Chart Sheet with VBA
- Refer to the workbook and chart sheet to activate.
- Activate the applicable chart sheet.
Main VBA Constructs Used to Activate Workbook and Chart Sheet
(1) Workbook object.
Represents an Excel workbook.
(2) Workbook.Charts property.
Returns a Sheets collection representing all chart sheets in the applicable workbook.
(3) Charts object.
Represents all chart sheets in the applicable workbook.
(4) Charts.Item property.
Returns a specific Chart object from the applicable Charts collection.
(5) Chart object.
Represents a chart in a workbook. The chart can be either of the following:
- A chart sheet.
- An embedded chart (not the subject of this Section).
(6) Chart.Activate method.
Activates the applicable chart.
Cues to Activate Workbook and Chart Sheet with VBA
- Work with (among others) one of the following VBA constructs (or groups of constructs) to return a Workbook object:
- Application.Workbooks property, Workbooks object, and Workbooks.Item property.
- Application.ThisWorkbook property.
- As a general rule, identify the applicable Chart object (inside the Charts collection) using one of the following:
- An index number. The index number:
- Represents the position of the Chart object in the Charts collection.
- Is:
- Wrapped in parentheses ((IndexNumber)).
- Included after the reference to the Charts collection (Charts(IndexNumber)).
- The Chart object’s name (Chart.Name property). The name is:
- Wrapped in:
- Double quotes (“ChartSheetName”); and
- Parentheses ((“ChartSheetName”)).
- Included after the reference to the Charts collection (Charts(“ChartSheetName”)).
- Wrapped in:
- An index number. The index number:
- You can (also) use a Chart object’s CodeName property (Chart.CodeName property) to refer to the applicable chart sheet.
Macro Example to Activate Workbook and Chart Sheet
The macro below does the following:
- Activate:
- The “Excel VBA Activate Workbook.xlsm” workbook; and
- The “Activate Workbook Chart Sheet” chart sheet.
- Maximize the active window.
Sub ActivateWorkbookAndChartSheet() 'Source: https://powerspreadsheets.com/ 'For further information: https://powerspreadsheets.com/excel-vba-activate-workbook/ 'This procedure: '(1) Activates the "Activate Workbook Chart Sheet" chart sheet in the "Excel VBA Activate Workbook.xlsm" workbook '(2) Maximizes the active window 'Activate the "Activate Workbook Chart Sheet" chart sheet in the "Excel VBA Activate Workbook.xlsm" workbook Workbooks("Excel VBA Activate Workbook.xlsm").Charts("Activate Workbook Chart Sheet").Activate 'Maximize the active window ActiveWindow.WindowState = xlMaximized End Sub
Effects of Executing Macro Example to Activate Workbook and Chart Sheet
The image below illustrates the effects of using the macro example. In this example:
- 2 workbooks (“Excel VBA Activate Workbook.xlsm” and “Book1”) are open.
- The “Book1” workbook is the active workbook.
- The “Sheet1” worksheet is the active sheet in both (“Excel VBA Activate Workbook.xlsm” and “Book1”) workbooks.
When the macro is executed, Excel:
- Activates:
- The “Excel VBA Activate Workbook.xlsm” workbook; and
- The “Activate Workbook Chart Sheet” chart sheet.
- Maximizes the active window.
Excel VBA Activate Workbook with Variable Name
VBA Code to Activate Workbook with Variable Name
To activate a workbook with variable name (where the workbook filename is held by a variable), use the following structure/template in the applicable procedure.
VariableDeclarationStatement WorkbookFilenameVariable As String WorkbookFilenameVariable = WorkbookFilenameString Workbooks(WorkbookFilenameVariable).Activate
Process to Activate Workbook with Variable Name
- Declare variable (usually of the String data type) to represent workbook filename.
- Assign workbook filename to variable.
- Refer to the workbook to activate by using the applicable variable name (representing the workbook filename).
- Activate the applicable workbook.
Main VBA Constructs Used to Activate Workbook with Variable Name
(1) Variable declaration statement.
One of the following 4 statements:
- Dim: Declares variables and allocates storage space.
- Private:
- Used at the module level.
- Declares module-level variables and allocates storage space.
- Public:
- Used at the module level.
- Declares global variables and allocates storage space.
- Static: Declares static variables and allocates storage space.
(2) String data type.
Holds textual data (a sequence of characters representing the characters themselves).
(3) Assignment operator (=).
Assigns a value to a variable or property.
(4) Application.Workbooks property.
Returns a Workbooks collection representing all open workbooks.
(5) Workbooks object.
Represents all open workbooks.
(6) Workbooks.Item property.
Returns a specific Workbook object from the applicable Workbooks collection.
(7) Workbook object.
Represents an Excel workbook.
(8) Variable.
A named storage location containing data that can be modified during procedure execution.
(9) Workbook.Activate method.
Activates the (first) window associated with a workbook.
Cues to Activate Workbook with Variable Name with VBA
- Consider explicitly declaring:
- The variable representing the workbook filename.
- The data type (usually String) of the variable representing the workbook filename.
- As a general rule, declare the variable representing the workbook filename:
- Using the Dim statement; and
- As of the String data type.
- If the scope of the variable representing the workbook filename is module-level or global, follow the applicable rules for (module-level or global) variable declaration.
- When assigning the workbook filename to the variable representing the workbook filename:
- Consider whether you must wrap the workbook filename in double quotes and parentheses ((“Filename”)).
- As a general rule:
- Include the complete filename, including file extension (for ex., “Filename.xlsm”), of a previously saved workbook.
- Do not include the file path.
Macro Example to Activate Workbook with Variable Name
The macro below does the following:
- Declare a variable (WorkbookFilename) of the String data type.
- Assign a string (Excel VBA Activate Workbook.xlsm) to the WorkbookFilename variable.
- Activate the workbook whose filename is represented by the WorkbookFilename variable.
- Maximize the active window.
Sub ActivateWorkbookWithVariableName() 'Source: https://powerspreadsheets.com/ 'For further information: https://powerspreadsheets.com/excel-vba-activate-workbook/ 'This procedure: '(1) Declares a variable (WorkbookFilename) of the String data type '(2) Assigns a string (Excel VBA Activate Workbook.xlsm) to the WorkbookFilename variable '(3) Activates the workbook whose filename is represented by the WorkbookFilename variable '(4) Maximizes the active window 'Declare variable to represent workbook filename Dim WorkbookFilename As String 'Assign workbook filename to variable WorkbookFilename = "Excel VBA Activate Workbook.xlsm" 'Activate the workbook whose filename is represented by the WorkbookFilename variable Workbooks(WorkbookFilename).Activate 'Maximize the active window ActiveWindow.WindowState = xlMaximized End Sub
Effects of Executing Macro Example to Activate Workbook with Variable Name
The image below illustrates the effects of using the macro example. In this example:
- 2 workbooks (“Excel VBA Activate Workbook.xlsm” and “Book1”) are open.
- The “Book1” workbook is the active workbook.
When the macro is executed, Excel:
- Activates the workbook whose filename (Excel VBA Activate Workbook.xlsm) is held by a variable (WorkbookFilename); and
- Maximizes the active window.
Excel VBA Activate Workbook with Object Variable Name
VBA Code to Activate Workbook with Object Variable Name
To activate a workbook with object variable name (where the Workbook object is represented by an object variable), use the following structure/template in the applicable procedure.
VariableDeclarationStatement WorkbookObjectVariable As Workbook Set WorkbookObjectVariable = WorkbookObjectReference WorkbookObjectVariable.Activate
Process to Activate Workbook with Object Variable Name
- Declare object variable (usually of the Workbook object data type) to represent workbook.
- Assign Workbook object reference to object variable.
- Refer to the workbook to activate by using the applicable object variable name (representing the workbook).
- Activate the applicable workbook.
Main VBA Constructs Used to Activate Workbook with Object Variable Name
(1) Variable declaration statement.
One of the following 4 statements:
- Dim: Declares variables and allocates storage space.
- Private:
- Used at the module level.
- Declares module-level variables and allocates storage space.
- Public:
- Used at the module level.
- Declares global variables and allocates storage space.
- Static: Declares static variables and allocates storage space.
(2) Workbook object.
Represents an Excel workbook.
(3) Set statement.
Assigns an object reference to a variable or property.
(4) Application.Workbooks property.
Returns a Workbooks collection representing all open workbooks.
(5) Workbooks object.
Represents all open workbooks.
(6) Workbooks.Item property.
Returns a specific Workbook object from the applicable Workbooks collection.
(7) Object Variable.
A named storage location containing data (a reference to an object) that can be modified during procedure execution.
(8) Workbook.Activate method.
Activates the (first) window associated with a workbook.
Cues to Activate Workbook with Object Variable Name with VBA
- Consider explicitly declaring:
- The object variable representing the workbook.
- The data type (usually Workbook object) of the object variable representing the workbook.
- As a general rule, declare the object variable representing the workbook:
- Using the Dim statement; and
- As of the Workbook object data type.
- If the scope of the object variable representing the workbook is module-level or global, follow the applicable rules for (module-level or global) variable declaration.
Macro Example to Activate Workbook with Object Variable Name
The macro below does the following:
- Declare an object variable (WorkbookObjectVariable) of the Workbook object data type.
- Assign a Workbook object reference (Excel VBA Activate Workbook.xlsm) to the WorkbookObjectVariable object variable.
- Activate the workbook represented by the WorkbookObjectVariable object variable.
- Maximize the active window.
Sub ActivateWorkbookWithObjectVariableName() 'Source: https://powerspreadsheets.com/ 'For further information: https://powerspreadsheets.com/excel-vba-activate-workbook/ 'This procedure: '(1) Declares an object variable (WorkbookObjectVariable) of the Workbook object data type '(2) Assigns a Workbook object reference (to the "Excel VBA Activate Workbook.xlsm" workbook) to the WorkbookObjectVariable object variable '(3) Activates the workbook represented by the WorkbookObjectVariable object variable '(4) Maximizes the active window 'Declare object variable to represent workbook Dim WorkbookObjectVariable As Workbook 'Assign Workbook object reference to object variable Set WorkbookObjectVariable = Workbooks("Excel VBA Activate Workbook.xlsm") 'Activate workbook represented by the WorkbookObjectVariable object variable WorkbookObjectVariable.Activate 'Maximize the active window ActiveWindow.WindowState = xlMaximized End Sub
Effects of Executing Macro Example to Activate Workbook with Object Variable Name
The image below illustrates the effects of using the macro example. In this example:
- 2 workbooks (“Excel VBA Activate Workbook.xlsm” and “Book1”) are open.
- The “Book1” workbook is the active workbook.
When the macro is executed, Excel:
- Activates the workbook whose reference (Excel VBA Activate Workbook.xlsm) is held by an object variable (WorkbookObjectVariable); and
- Maximizes the active window.
Excel VBA Open and Activate Workbook
VBA Code to Open and Activate Workbook
To open and activate a workbook, use the following structure/template in the applicable statement.
Workbooks.Open Filename:="PathAndFilename"
Process to Open and Activate Workbook with VBA
- Open the workbook with the Workbooks.Open method.
Main VBA Constructs Used to Open and Activate Workbook
(1) Workbooks.Open method.
Opens a workbook.
(2) Filename parameter.
The:
- First parameter of the Workbooks.Open method.
- Filename of the workbook to open.
Cues to Open and Activate Workbook with VBA
- When you open a workbook with the Workbooks.Open method, the opened workbook becomes the active workbook.
- Consider whether you must wrap the workbook path and filename in double quotes (“PathAndFilename”).
- As a general rule:
- Include the full path and filename (including file extension).
- If the workbook is stored in the default file folder (where Excel currently saves files by default), you can exclude the workbook’s path (use only the filename, including file extension).
Macro Example to Open and Activate Workbook
The macro below opens (and activates) the workbook with filename “Excel VBA Open and Activate Workbook.xlsx” stored in the Desktop folder.
Sub OpenAndActivateWorkbook() 'Source: https://powerspreadsheets.com/ 'For further information: https://powerspreadsheets.com/excel-vba-activate-workbook/ 'Open the workbook with filename "Excel VBA Open and Activate Workbook.xlsx" stored in the Desktop folder. The opened workbook becomes the active workbook Workbooks.Open Filename:="C:UsersPowerSpreadsheetsDesktopExcel VBA Open and Activate Workbook.xlsx" End Sub
Effects of Executing Macro Example to Open and Activate Workbook
The image below illustrates the effects of using the macro example.
In this example (only) 1 workbook (“Excel VBA Activate Workbook”) is open. This is (also) the active workbook.
When the macro is executed, Excel opens and activates the workbook with filename “Excel VBA Open and Activate Workbook.xlsx” stored in the Desktop folder.
Home / VBA / VBA Activate Workbook (Excel File)
When you are working with multiple workbooks at the same time, I mean, when you have more than one workbook open at the same time then you need to know the method that can help you activate a workbook that you want to work on.
To activate a workbook using VBA, you need to use the Workbook.Activate method. In this method, you need to specify the workbook name using the Workbook object. It also allows you to use the workbook number instead of the workbook name, but you can only refer to the open workbooks.
In this tutorial, we look at different ways to use this method.
Steps to Activate a Workbook
- Type “Workbooks” to use the workbook object.
- Specify the workbook name in the double quotation marks.
- Enter a dot (.) to get the list of properties and methods.
- Select the Activate method from the list or you can also type it.
- In the end, run the code to activate the workbook.
Sub vba_activate_workbook()
Workbooks("Book3").Activate
End Sub
Note: If you try to activate a workbook that is not open, VBA will show an error.
Related: Activate a Worksheet using VBA
Helpful Links: Run a Macro – Macro Recorder – Visual Basic Editor – Personal Macro Workbook
Activate a Workbook by using the Number
When you have multiple workbooks open all those workbooks are part of the workbook collection and have a number that you can use to refer to and then you can use the activate method with it. Here’s the code:
Sub vba_activate_workbook()
Workbooks(2).Activate
End Sub
And if you are trying to activate a workbook using a number that doesn’t exist, VBA will show you an error Run-time error ‘9’ (Subscript out of Range).
Activate ThisWorkbook
You can refer to the workbook where you are writing code by using the ThisWorkbook property. Let’s say you have five workbooks open at the same time but you are working on the “Book1.xlsm”, so when you run the following code, it will activate the “Book1.xlsm”.
Sub vba_activate_workbook()
ThisWorkbook.Activate
End Sub
Check Before Activating a Workbook
As I said, when you try to activate a workbook that is not opened VBA will show you an error. To deal with this problem the best way is to check for the workbook name first (if it’s open or not) and then activate it.
Sub vba_activate_workbook()
Dim wb As Workbook
For Each wb In Workbooks
If wb.Name = "Book3.xlsx" Then
wb.Activate
MsgBox "Workbook found and activated"
Exit Sub
End If
Next wb
MsgBox "Not found"
End Sub
By using the above code, you can specify a workbook name and this will first check for that workbook in all the open workbooks, and if it finds the workbook, it will activate it.
Notes
- When you are using the name of the workbook make sure to use the correct file extension
- If you want to activate a workbook that is not yet saved, then you need to use only the name of that workbook without suffixing the file extension.
More on VBA Workbooks
VBA Save Workbook | VBA Close Workbook | VBA Delete Workbook | VBA ThisWorkbook | VBA Rename Workbook | VBA Combine Workbook | VBA Protect Workbook (Unprotect) | VBA Check IF a Workbook is Open | VBA Open Workbook | VBA Check IF an Excel Workbook Exists in a Folder| VBA Create New Workbook (Excel File)
- VBA Workbook
In this Article
- The Workbook Object
- Workbook Index Number
- Activate Workbook, ActiveWorkbook, and ThisWorkbook
- Activate Workbook
- ActiveWorkbook
- ThisWorkbook
- Open Workbook
- Open and Assign to Variable
- Open File Dialog
- Create New (Add) Workbook
- Add New Workbook to Variable
- Close Workbook
- Close & Save
- Close without Save
- Workbook Save As
- Other Workbook VBA Examples
- Workbook Name
- Protect Workbook
- Loop Through all Open Workbooks
- Workbook Activate Event
This guide will introduce you working with the Workbook Object in VBA.
The Workbook Object
First, in order to interact with workbooks in VBA, you must understand the Workbook Object.
With the workbook object, you can reference workbooks by their name like this:
Workbooks("Book2.xlsm").Activate
However, this code will only work if the workbook is open. If the workbook is closed, you will need to provide the full workbook path:
Workbooks.Open ("C:UsersStevePC2Downloadsbook2.xlsm")
Instead of typing out the full path, if your desired workbook is in the same directory as the workbook where your code is stored, you could use this line code to open the workbook:
Workbooks.Open (ThisWorkbook.Path & "book2.xlsm")
This makes use of the ThisWorkbook object that we will discuss in the next section.
Workbook Index Number
Last, you can reference workbooks by their “Index Number”. The index number of a workbook corresponds to the order that the workbook was opened (technically its the workbook’s position in the Workbooks Collection).
Workbooks(1).Activate
This is useful if you want to do something like close the first (or last) opened workbook.
Activate Workbook, ActiveWorkbook, and ThisWorkbook
If a workbook is NOT ACTIVE, you can access the Workbook’s objects like this:
Workbooks("Book2.xlsm").Sheets("Sheet1").Range("A1").value = 1
However, if the workbook is Active, you can omit the workbook object:
Sheets("Sheet1").Range("A1").value = 1
And if you want to interact with the workbook’s active sheet, you can also ommit the sheets object:
Range("A1").value = 1
Activate Workbook
To activate a workbook, use the Activate Method.
Workbooks("Book2.xlsm").Activate
Now you can interact with Book2’s object’s without explicitly stating the workbook name.
ActiveWorkbook
The ActiveWorkbook object always refer to the active workbook. This is useful if you’d like to assign the ActiveWorkbook to a variable to use later.
Dim wb As Workbook
Set wb = ActiveWorkbook
ThisWorkbook
The ThisWorkbook object always refers to the workbook where the running code is stored. To activate ThisWorkbook, use this line of code:
ThisWorkbook.Activate
VBA Coding Made Easy
Stop searching for VBA code online. Learn more about AutoMacro — A VBA Code Builder that allows beginners to code procedures from scratch with minimal coding knowledge and with many time-saving features for all users!
Learn More
Open Workbook
To open a workbook, use the Open Method:
Workbooks.Open ("C:UsersStevePC2Downloadsbook2.xlsm")
The newly opened workbook will always become the ActiveWorkbook, allowing you to easily interact with it.
ActiveWorkbook.Save
The Open Method has several other arguments, allowing you to open read-only, open a password-protected workbook, and more. It’s covered here in our article about Opening / Closing Workbooks.
Open and Assign to Variable
You can also open a workbook and assign it to a variable at the same time:
Dim wb As Workbook
Set wb = Workbooks.Open("C:UsersStevePC2Downloadsbook2.xlsm")
Open File Dialog
You can also trigger the Open File Dialog Box like this:
Sub OpenWorkbook ()
Dim strFile As String
strFile = Application.GetOpenFilename()
Workbooks.Open (strFile)
End Sub
VBA Programming | Code Generator does work for you!
Create New (Add) Workbook
This line of code will create a new workbook:
Workbooks.Add
The new workbook now becomes the ActiveWorkbook, allowing you to interact with it (ex. save the new workbook).
Add New Workbook to Variable
You can also add a new workbook directly to a variable:
Dim wb As Workbook
Set wb = Workbooks.Add
Close Workbook
Close & Save
To close a workbook with saving, use the Close Method with SaveChanges set to TRUE:
ActiveWorkbook.Close SaveChanges:=True
Close without Save
To close without saving, set SaveChanges equal to FALSE:
ActiveWorkbook.Close SaveChanges:=False
AutoMacro | Ultimate VBA Add-in | Click for Free Trial!
Workbook Save As
The SaveAs Method is used to save a workbook as.
To save a workbook with a new name, in the same directory, you can imply use this:
ActiveWorkbook.SaveAs "new"
where “new” is the new file name.
To save a workbook in a new directory with a specific file extension, simply specify the new directory and file name:
ActiveWorkbook.SaveAs "C:UsersStevePC2Downloadsnew.xlsm"
Other Workbook VBA Examples
Workbook Name
To get the name of a workbook:
MsgBox ActiveWorkbook.Name
Protect Workbook
To protect the workbook structure from editing, you can use the Protect Method (password optional):
Workbooks("book1.xlsm").Protect "password"
To unprotect a workbook use the UnProtect Method:
Workbooks("book1.xlsm").Unprotect "password"
AutoMacro | Ultimate VBA Add-in | Click for Free Trial!
Loop Through all Open Workbooks
To loop through all open workbooks:
Sub LoopThroughWBs()
Dim wb As Workbook
For Each wb In Workbooks
MsgBox wb.Name
Next wb
End Sub
Workbook Activate Event
You can run some code whenever a specific workbook is opened with the Workbook Open Event.
Place this procedure your workbook’s ThisWorkbook Module:
Private Sub Workbook_Open()
Sheets("sheet1").Activate
End Sub
This procedure will activate Sheet1 every time the workbook is opened.