Часто бывает, что надо получить данные из другой, открытой вместе с используемой, книги Excel.
Данная функция помогает получить ссылку на другую, открытую в текущий момент, книгу:
Sub ПримерИспользования_GetAnotherWorkbook() Dim WB As Workbook Set WB = GetAnotherWorkbook If Not WB Is Nothing Then MsgBox "Выбрана книга: " & WB.FullName, vbInformation Else MsgBox "Книга не выбрана", vbCritical: Exit Sub End If ' обработка данных из выбранной книги x = WB.Worksheets(1).Range("a2") ' ... End Sub Function GetAnotherWorkbook() As Workbook ' если в данный момент открыто 2 книги, функция возвратит вторую открытую книгу ' если помимо текущей, открыто более одной книги - будет предоставлен выбор On Error Resume Next Dim coll As New Collection, WB As Workbook For Each WB In Workbooks If WB.Name <> ThisWorkbook.Name Then If Windows(WB.Name).Visible Then coll.Add CStr(WB.Name) End If Next WB Select Case coll.Count Case 0 ' нет других открытых книг MsgBox "Нет других открытых книг", vbCritical, "Function GetAnotherWorkbook" Case 1 ' открыта ещё только одна книга - её и возвращаем Set GetAnotherWorkbook = Workbooks(coll(1)) Case Else ' открыто несколько книг - предоставляем выбор For i = 1 To coll.Count txt = txt & i & vbTab & coll(i) & vbNewLine Next i msg = "Выберите одну из открытых книг, и введите её порядковый номер:" & _ vbNewLine & vbNewLine & txt res = InputBox(msg, "Открыто более двух книг", 1) If IsNumeric(res) Then Set GetAnotherWorkbook = Workbooks(coll(Val(res))) End Select End Function
- 37372 просмотра
Не получается применить макрос? Не удаётся изменить код под свои нужды?
Оформите заказ у нас на сайте, не забыв прикрепить примеры файлов, и описать, что и как должно работать.
jfd Пользователь Сообщений: 302 |
Добрый день! |
iba2004 Пользователь Сообщений: 1034 |
Мне думается, что нужно создать что-то типа ListBox (TextBox) в который будут собираться имена открытых файлов. Есть что-то их объединяющее, например, расширение? Но я с такими проблемами не сталкивался и это всего лишь моё предположение. Сейчас, к сожалению, времени мало, попробуйте что-нибудь подобное в Нете поискать, а м.б. более знающие люди помогут. |
k61 Пользователь Сообщений: 2441 |
#3 06.03.2013 14:56:02 Код в Книге2
|
||
jfd Пользователь Сообщений: 302 |
Извините, создается впечатление что Вы не удосужились прочесть вопрос. |
Юрий М Модератор Сообщений: 60575 Контакты см. в профиле |
#5 06.03.2013 15:07:42
Это почему? Вместо «Книга1» подставляем выбранное значение из Лист/КомбоБокса, как предлагалось выше. |
||
ber$erk Пользователь Сообщений: 2735 |
#6 06.03.2013 15:11:09 все открытые файлы Excel
Учимся сами и помогаем другим… |
||
jfd Пользователь Сообщений: 302 |
Юрий М, потому что этот способ очевиден и предполагает знание названия файла нужной книги. |
Sergei_A Пользователь Сообщений: 443 |
Я бы сделал немодальную форму (похожую на msgbox) с текстом «Выберите одну из открытых книг Excel, и нажмите ОК.» и одной кнопкой ОК. По кнопке взяли имя активной книги и продолжайте свой макрос. |
Юрий М Модератор Сообщений: 60575 Контакты см. в профиле |
А как Excel должен догадаться КАКУЮ именно из открытых книг нужно активировать? |
jfd Пользователь Сообщений: 302 |
#10 06.03.2013 15:18:04
Спасибо. |
||
jfd Пользователь Сообщений: 302 |
#11 06.03.2013 15:20:39
Пауза в выполнении макроса во время которой мышью тыкается нужная книга и она становится активной, все действия макроса идут в активной книге. Если так конечно возможно. |
||
ber$erk Пользователь Сообщений: 2735 |
В коде макросе если указать ActiveWorkbook.ActiveSheet.range… то код как раз будет выполняться в выбранной книге (хотя вроде как это по умолчанию) Учимся сами и помогаем другим… |
Казанский Пользователь Сообщений: 8839 |
#13 06.03.2013 15:24:10 Создайте форму со свойством ShowModal=False, надписью «Выберите книгу» и кнопкой. В коде кнопки напишите
, где MainMacro — макрос, который работает с активной книгой.
|
||||
Юрий М Модератор Сообщений: 60575 Контакты см. в профиле |
Попробуйте тогда .Wait |
jfd Пользователь Сообщений: 302 |
Нашел что Wait — это метод позволяет приостановить работу Excel на указанное вами время, сняв нагрузку с процессора. Используется для демонстраций — чтобы пользователь успел увидеть, что происходит, для ожидания завершения выполнения какой-либо внешней операции и т.п. При этом ввод пользователя блокируется, а указатель мыши приобретает вид песочных часов. К сожалению. А Application.InputBox позволяет осуществлять выбор диапазона мышью только на той книге на которой он был запущен. Причем мышью можно выбрать только если не установлен запрет на Application.ScreenUpdating, как то долго не мог понять почему не работает выбор мышью, когда в другом макросе все было хорошо. ) Изменено: jfd — 06.03.2013 22:00:47 |
Sergei_A Пользователь Сообщений: 443 |
#16 06.03.2013 15:53:26
Я не понял о чем это Вы. Прикрепленные файлы
|
||
jfd Пользователь Сообщений: 302 |
Хотел малой кровью отделаться. Спасибо за пример. |
jfd Пользователь Сообщений: 302 |
#18 06.03.2013 16:11:07 Казанский, |
Skip to content
На чтение 2 мин. Просмотров 5.1k.
Что делает макрос: Этот макрос открывает диалоговое окно, в котором отображаются только excel-файлы, тем самым позволяет открыть конкретную книгу
Содержание
- Как макрос работает
- Код макроса
- Как работает этот код
- Как использовать
Как макрос работает
Данный макрос открывает диалоговое окно, как показано на рис, что позволяет пользователю просматривать и открывать файл Excel.
Код макроса
Sub Macro7() 'Шаг 1: Определяем переменную. Dim FName As Variant 'Шаг 2: Метод GetOpenFilename активизирует диалоговое окно. FName = Application.GetOpenFilename( _ 'a – определяем тип файла FileFilter:="Excel Workbooks,*.xl*", _ 'b – заголовок окна Title:="Выбери файл, который надо открыть", _ 'c – множественный выбор MultiSelect:=False) 'Шаг 3: Если был выбран файл, открыть его! If FName <> False Then Workbooks.Open Filename:=FName End If End Sub
Как работает этот код
- Первое, что делаем — объявляем переменную типа Variant, будет содержать Имя файла, который пользователь выберет. FName — имя нашей переменной.
- На шаге 2 мы используем метод GetOpenFilename, чтобы вызвать диалоговое окно, которое позволяет просмотреть содержимое папки и выбрать нужный нам файл. Метод
GetOpenFilename поддерживает несколько настраиваемых параметров:
a. FileFilter параметр позволяет указать Тип файла, который мы ищем.
b. Title позволяет изменить заголовок, который отображается в верхней части диалогового окна.
c. MultiSelect — параметр множественный выбор позволяет ограничить выбор в один файл. - Если пользователь выбирает файл из диалогового окна, переменная FName берёт Имя файла, который выбрали. Если переменная не пустая, мы используем метод Open из книг
объекта, чтобы открыть файл.
Как использовать
Для реализации этого макроса, вы можете скопировать и вставить его в стандартный модуль:
- Активируйте редактор Visual Basic, нажав ALT + F11.
- Щелкните правой кнопкой мыши имя проекта / рабочей книги в окне проекта.
- Выберите Insert➜Module.
- Введите или вставьте код во вновь созданном модуле.
- По желанию, можно назначить макрос к кнопке, чтобы открыть файл.
How do I activate my Other workbook from the Current workbook? I have a current workbook with dumb.xls and The other workbook name as Tire.xls.I have opened the Tire.xls from the dumb.xls using worksbooks.open filename:= "name of the file"
.Its getting open but The problem is Im unable to make it work.
If I say cells(2,24).value=24
puts these value in the cell of dumb.xls but I want it to be done one Tire.xls.
activesheet.cells(2,24).value=24
puts these on Tire.xls. But how do i activate the Workbook with the name ? I need to open 3 to 4 excel workbooks And perform the operation? How do I activate the specific workbook
I have found this code on google
activeworkbook.worksheet("sheetname").activate ' but not working
windows("sheetname").activate ' people on google suggested not to use
Its not getting activated. I dont know how to make it work. Can anyone tell me How do i activate a specific workbook and a specific sheet of the other workbook ?
Example: I have niko.xls and niko_2.xls opened as workbooks from the dumb.xls workbook so totally 3 workbooks and I have to activate the 2nd sheet of niko_2.xls workbook.How do I make it? Can anyone explain me the syntax with these example? Thank you in advance
1 / 1 / 1 Регистрация: 11.01.2013 Сообщений: 153 |
|
1 |
|
Как сделать книгу активной, зная имя книги?13.04.2013, 13:49. Показов 31017. Ответов 8
Как сделать книгу активной зная имя книги?
0 |
Programming Эксперт 94731 / 64177 / 26122 Регистрация: 12.04.2006 Сообщений: 116,782 |
13.04.2013, 13:49 |
8 |
5468 / 1148 / 50 Регистрация: 15.09.2012 Сообщений: 3,514 |
|
13.04.2013, 17:06 |
2 |
PuLbKa, напишите на Форуме имя активной книги.
0 |
Казанский 15136 / 6410 / 1730 Регистрация: 24.09.2011 Сообщений: 9,999 |
||||
13.04.2013, 21:01 |
3 |
|||
0 |
PuLbKa 1 / 1 / 1 Регистрация: 11.01.2013 Сообщений: 153 |
||||
14.04.2013, 09:50 [ТС] |
4 |
|||
Я так делаю он ругается
0 |
Казанский 15136 / 6410 / 1730 Регистрация: 24.09.2011 Сообщений: 9,999 |
||||
14.04.2013, 11:25 |
5 |
|||
Значит, используете неправильное имя. Выполните в окне Immediate
Получите список книг. Скопируйте нужное имя и вставьте в код.
2 |
1 / 1 / 1 Регистрация: 11.01.2013 Сообщений: 153 |
|
28.04.2013, 11:48 [ТС] |
6 |
Получите список книг. Скопируйте нужное имя и вставьте в код. Можете подсказать как это сделать?
0 |
Заблокирован |
||||
28.04.2013, 14:47 |
7 |
|||
как это сделать? 1: Открыть VBA — [Alt+F11]
4: Поставить курсор ввода на строку с введенным кодом Но есть подозрение, что сделать активной Вы хотите неоткрытую книгу?
0 |
Модератор 34706 / 19227 / 4039 Регистрация: 12.02.2012 Сообщений: 32,183 Записей в блоге: 13 |
|
28.04.2013, 19:24 |
8 |
Казанский совершенно прав. Но при условии, что книга открыта. Если книга не открыта — ее нужно сначала открыть, а уж затем активизировать.
0 |
971 / 353 / 135 Регистрация: 27.10.2006 Сообщений: 764 |
|
28.04.2013, 20:17 |
9 |
мне кажется. тут ещё важную роль играет указано ли расширение файла. А если вы в настройках Windows (в свойствах папки) указали — отображать расширения файлов, то так
0 |
Свойство Selection объекта Application, которое применяется в VBA для возвращения выбранного объекта на активном листе в активном окне приложения Excel.
Свойство Selection объекта Application возвращает выбранный в настоящее время объект на активном листе в активном окне приложения Excel. Если объект не выбран, возвращается значение Nothing.
Если выделить на рабочем листе диапазон «B2:E6», то обратиться к нему из кода VBA Excel можно через свойство Selection объекта Application, например, присвоить выбранный диапазон объектной переменной:
Sub Primer1() Dim myRange As Object Set myRange = Selection MsgBox myRange.Address End Sub |
При использовании свойства Selection в коде VBA Excel указывать объект Application не обязательно. Результат работы кода:
На рабочем листе Excel может быть выбран не только диапазон ячеек, но и другие объекты: рисунок, надпись, диаграмма, элемент управления формы и другие.
Применение функции TypeName
Для программного выбора объекта в VBA Excel используется метод Select, а для определения типа ранее выбранного объекта — функция TypeName.
TypeName — это функция, которая возвращает данные типа String, предоставляющие информацию о типе переменной или типе объекта, присвоенного объектной переменной.
Выберем диапазон «D5:K9» методом Select и определим тип данных выбранного объекта с помощью функции TypeName:
Sub Primer2() Range(«D5:K9»).Select MsgBox TypeName(Selection) End Sub |
В качестве переменной для функции TypeName здесь используется свойство Selection. Результат работы кода:
Следующий пример кода VBA Excel очень хорошо иллюстрирует определение типа выбранного объекта с помощью функции TypeName. Он взят с сайта разработчиков, только в блок Select Case добавлены еще два элемента Case:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
Sub TestSelection() Dim str As String Select Case TypeName(Selection) Case «Nothing» str = «Объект не выбран.» Case «Range» str = «Выбран диапазон: « & Selection.Address Case «Picture» str = «Выбран рисунок.» Case «ChartArea» str = «Выбрана диаграмма.» Case «TextBox» str = «Выбрана надпись.» Case Else str = «Выбран объект: « & TypeName(Selection) & «.» End Select MsgBox str End Sub |
Если из предыдущей процедуры VBA Excel удалить переводы отдельных типов объектов и учесть, что рабочий лист без выбранного объекта встречается редко, то ее можно значительно упростить:
Sub TestSelection2() MsgBox «Выбран объект: « & TypeName(Selection) & «.» End Sub |
Пример рабочего листа без выбранного объекта: лист диаграммы, на котором диаграмма не выбрана (выделение снимается кликом по одному из полей вокруг диаграммы). Для такого листа в информационном окне MsgBox будет выведено сообщение: Выбран объект: Nothing.
Свойство Selection при выборе листа
Если метод Select применить к рабочему листу, то свойство Application.Selection возвратит объект, который ранее был выбран на данном листе. Проверить это можно с помощью следующего примера:
Sub Primer3() Worksheets(3).Select Select Case TypeName(Selection) Case «Range» MsgBox «Выбран диапазон: « & Selection.Address Case Else MsgBox «Выбран объект: « & TypeName(Selection) & «.» End Select End Sub |
Свойство Selection при выборе книги
Выбрать рабочую книгу Excel методом Select невозможно, так как у объекта Workbook в VBA нет такого метода. Но мы можем выбрать книгу, сделав ее активной с помощью метода Activate:
Sub Primer4() Workbooks(«Книга2.xlsx»).Activate Select Case TypeName(Selection) Case «Range» MsgBox «Выбран диапазон: « & Selection.Address Case Else MsgBox «Выбран объект: « & TypeName(Selection) & «.» End Select End Sub |
В данном случае, свойство Application.Selection возвратит объект, который ранее был выбран на активном листе активированной книги.
Обычно, свойство Application.Selection используется для работы с выделенным диапазоном ячеек, а для обращения к одной активной ячейке используется свойство Application.ActiveCell.
Как сделать книгу активной, зная имя книги?
Смотрите также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
указали — отображать
workbooks(«»).Act…выбрать открытую книгу, зная часть имени |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |