Vba excel как выбрать книгу

Часто бывает, что надо получить данные из другой, открытой вместе с используемой, книги 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
Регистрация: 01.01.1970

Добрый день!
Банальная вроде вещь, а потратил кучу времени и не нашел ничего.
Есть файл1 с макросом (кроме макроса ничего не имеет), есть также другие открытые файлы. После запуска макроса из файл1 надо выбрать(указать мышью, сделать активным) один из открытых файлов, к которому после этого будет применен макрос. Имена других открытых файлов и где хранятся не известно.
В какую сторону смотреть?

 

iba2004

Пользователь

Сообщений: 1034
Регистрация: 22.12.2012

Мне думается, что нужно создать что-то типа ListBox (TextBox) в который будут собираться имена открытых файлов. Есть что-то их объединяющее, например, расширение? Но я с такими проблемами не сталкивался и это всего лишь моё предположение. Сейчас, к сожалению, времени мало, попробуйте что-нибудь подобное в Нете поискать, а м.б. более знающие люди помогут.
Удачи!

 

k61

Пользователь

Сообщений: 2441
Регистрация: 21.12.2012

#3

06.03.2013 14:56:02

Код в Книге2

Код
Sub www()
Workbooks("Книга1").Activate
End Sub
 

jfd

Пользователь

Сообщений: 302
Регистрация: 01.01.1970

Извините, создается впечатление что Вы не удосужились прочесть вопрос.

 

Юрий М

Модератор

Сообщений: 60575
Регистрация: 14.09.2012

Контакты см. в профиле

#5

06.03.2013 15:07:42

Цитата
jfd пишет:
создается впечатление что Вы не удосужились прочесть вопрос.

Это почему? Вместо «Книга1» подставляем выбранное значение из Лист/КомбоБокса, как предлагалось выше.

 

ber$erk

Пользователь

Сообщений: 2735
Регистрация: 25.12.2012

#6

06.03.2013 15:11:09

все открытые файлы Excel

Код
Sub ListAll()
    Dim wb As Workbook
    For Each wb In Workbooks
        MsgBox wb.Name
    Next
End Sub

Учимся сами и помогаем другим…

 

jfd

Пользователь

Сообщений: 302
Регистрация: 01.01.1970

Юрий М, потому что этот способ очевиден и предполагает знание названия файла нужной книги.
А кроме получения списка всех открытых фалов и выбора из него одного, других способов нет?

 

Sergei_A

Пользователь

Сообщений: 443
Регистрация: 05.01.2013

Я бы сделал немодальную форму (похожую на msgbox) с текстом «Выберите одну из открытых книг Excel, и нажмите ОК.» и одной кнопкой ОК. По кнопке взяли имя активной книги и продолжайте свой макрос.

 

Юрий М

Модератор

Сообщений: 60575
Регистрация: 14.09.2012

Контакты см. в профиле

А как Excel должен догадаться КАКУЮ именно из открытых книг нужно активировать?

 

jfd

Пользователь

Сообщений: 302
Регистрация: 01.01.1970

#10

06.03.2013 15:18:04

Цитата
Sergei_A пишет:
Я бы сделал немодальную форму (похожую на msgbox) с текстом » Выберите одну из открытых книг Excel, и нажмите ОК. » и одной кнопкой ОК. По кнопке взяли имя активной книги и продолжайте свой макрос.

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

 

jfd

Пользователь

Сообщений: 302
Регистрация: 01.01.1970

#11

06.03.2013 15:20:39

Цитата
А как Excel должен догадаться КАКУЮ именно из открытых книг нужно активировать?

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

 

ber$erk

Пользователь

Сообщений: 2735
Регистрация: 25.12.2012

В коде макросе если указать ActiveWorkbook.ActiveSheet.range… то код как раз будет выполняться в выбранной книге (хотя вроде как это по умолчанию)

Учимся сами и помогаем другим…

 

Казанский

Пользователь

Сообщений: 8839
Регистрация: 11.01.2013

#13

06.03.2013 15:24:10

Создайте форму со свойством ShowModal=False, надписью «Выберите книгу» и кнопкой. В коде кнопки напишите

Код
Private Sub CommandButton1_Click()
Unload Me
MainMacro
End Sub

, где MainMacro — макрос, который работает с активной книгой.
Форма запускается стартовым макросом из одной команды

Код
UserForm1.Show
 

Юрий М

Модератор

Сообщений: 60575
Регистрация: 14.09.2012

Контакты см. в профиле

Попробуйте тогда .Wait
А Application.InputBox не пробовали?

 

jfd

Пользователь

Сообщений: 302
Регистрация: 01.01.1970

Нашел что Wait — это метод позволяет приостановить работу Excel на указанное вами время, сняв нагрузку с процессора. Используется для демонстраций — чтобы пользователь успел увидеть, что происходит, для ожидания завершения выполнения какой-либо внешней операции и т.п. При этом ввод пользователя блокируется, а указатель мыши приобретает вид песочных часов. К сожалению. А Application.InputBox позволяет осуществлять выбор диапазона мышью только на той книге на которой он был запущен. Причем мышью можно выбрать только если не установлен запрет на Application.ScreenUpdating, как то долго не мог понять почему не работает выбор мышью, когда в другом макросе все было хорошо. )

Изменено: jfd06.03.2013 22:00:47

 

Sergei_A

Пользователь

Сообщений: 443
Регистрация: 05.01.2013

#16

06.03.2013 15:53:26

Цитата
jfd пишет:
КАк все далеко зашло однако.

Я не понял о чем это Вы.

Прикрепленные файлы

  • Выбор книги.xlsm (17.71 КБ)

 

jfd

Пользователь

Сообщений: 302
Регистрация: 01.01.1970

Хотел малой кровью отделаться. Спасибо за пример.

 

jfd

Пользователь

Сообщений: 302
Регистрация: 01.01.1970

#18

06.03.2013 16:11:07

Казанский,
Спасибо, так и сделал.

Skip to content

На чтение 2 мин. Просмотров 5.1k.

Что делает макрос: Этот макрос открывает диалоговое окно, в котором отображаются только excel-файлы, тем самым позволяет открыть конкретную книгу

Содержание

  1. Как макрос работает
  2. Код макроса
  3. Как работает этот код
  4. Как использовать

Как макрос работает

Данный макрос открывает диалоговое окно, как показано на рис, что позволяет пользователю просматривать и открывать файл 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

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

  1. Первое, что делаем — объявляем переменную типа Variant, будет содержать Имя файла, который пользователь выберет. FName — имя нашей переменной.
  2. На шаге 2 мы используем метод GetOpenFilename, чтобы вызвать диалоговое окно, которое позволяет просмотреть содержимое папки и выбрать нужный нам файл. Метод
    GetOpenFilename поддерживает несколько настраиваемых параметров:
    a. FileFilter параметр позволяет указать Тип файла, который мы ищем.
    b. Title позволяет изменить заголовок, который отображается в верхней части диалогового окна.
    c. MultiSelect — параметр множественный выбор позволяет ограничить выбор в один файл.
  3. Если пользователь выбирает файл из диалогового окна, переменная FName берёт Имя файла, который выбрали. Если переменная не пустая, мы используем метод Open из книг
    объекта, чтобы открыть файл.

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

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

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

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

Visual Basic
1
workbooks("Имя").activate



0



PuLbKa

1 / 1 / 1

Регистрация: 11.01.2013

Сообщений: 153

14.04.2013, 09:50

 [ТС]

4

Цитата
Сообщение от Казанский
Посмотреть сообщение

Visual Basic
1
workbooks("Имя").activate

Я так делаю он ругается



0



Казанский

15136 / 6410 / 1730

Регистрация: 24.09.2011

Сообщений: 9,999

14.04.2013, 11:25

5

Значит, используете неправильное имя. Выполните в окне Immediate

Visual Basic
1
for each w in workbooks:debug.? w.name:next

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



2



1 / 1 / 1

Регистрация: 11.01.2013

Сообщений: 153

28.04.2013, 11:48

 [ТС]

6

Цитата
Сообщение от Казанский
Посмотреть сообщение

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

Можете подсказать как это сделать?



0



Апострофф

Заблокирован

28.04.2013, 14:47

7

Цитата
Сообщение от PuLbKa
Посмотреть сообщение

как это сделать?

1: Открыть VBA — [Alt+F11]
2: Нажать [Ctrl+G] (или ищите в меню окно Immediate)
3: Скопировать в окно Immediate код

Visual Basic
1
for each w in workbooks:debug.? w.name:next

4: Поставить курсор ввода на строку с введенным кодом
5: нажать Enter

Но есть подозрение, что сделать активной Вы хотите неоткрытую книгу?



0



Модератор

Эксперт функциональных языков программированияЭксперт Python

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, где в найстройках не указано — отображать расширения файлов нужно делать так
При открытой книге
Workbooks(«Книга1»).Activate

А если вы в настройках Windows (в свойствах папки) указали — отображать расширения файлов, то так
При открытой книге
Workbooks(«Книга1.xls»).Activate
или
Workbooks(«Книга1.xlsx»).Activate



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.Add​Selection.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 занести​B)​.Rows(«1:4»).Select​

​ — тоже не​​ ‘.ActiveCelltxt = GetObject(,​ = «Book.xlsx» Then​ xlsWb = ActiveWorkbook​ ‘сохраняем файл с​ природе такая функция​ только на той​jfd​iba2004​, тоже можно. Только​ пишет правильно, но​
​Вопрос может глупый,​
​ имя активной книги.​
​Octavian.vs​
​Хотел чтобы этот​
​ в новую книгу.​

​ActiveWindow.FreezePanes = True​​ переключается​
​ «Excel.Application»).ActiveCell?Созрел ещё один​ MsgBox «Нужная книга!»​
​ n = xlsWb.Sheets.Count​ новым названием в​ ActiveWorkbook.Path помимо ThisWorkbook.Path!​ книге на которой​: Спасибо.​: Мне думается, что​ за индексами придётся​ кривовато)​ но только начал​PuLbKa​: , спасибо, об​ цикл по листам​Russia​End With​Windows(«Лист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)​ ‘закрываем файл Книга1​Sergey112233​ не установлен запрет​ паузой (например вызовом​
​ собираться имена открытых​
​: Если Вы АБСОЛЮТНО​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​ что это проще​ пишется так:​ косяк :) a​dzug​ диска ‘oWbk.Quit????????? End​1. Открыта Книга113​ мог понять почему​ другой книги, но​ расширение? Но я​ ровно 2 книги​: Спасибо за ответы!​ и ответы, но​ имя. Выполните в​
​ не создано. А​Может нужно так​

​ Стопорится на том​​k = 4​ делает.​ActiveCell.FormulaR1C1 = «=R[+1]C+R[0]C[-2]»А​ = xlsWb.Sheets(1).Cells(Rows.Count, 1).End(xlUp).Row​: Увы, не работает..​ Sub​2. С помощью​ не работает выбор​ не дает открыть​ с такими проблемами​ причем, название одной​Наверное непонятно сформулировал​ на свой пример​ окне Immediate for​ именно так выглядит​ написать?​ моменте что указал​ ‘заполнение под «шапкой»​
​P.S.Заранее спасибо за​

​ вот из VB6​​ Set xlsSh =​
​dzug​dzug​

​ кода создаем новую​​ мышью, когда в​ другую книгу​ не сталкивался и​

​ из них Вы​​ вопрос:​ не могу применить​ 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 End​dzug​ смотрите в прилагаемом​​ она еще не​ было хорошо. )​: Пауза в выполнении​​ моё предположение. Сейчас,​ так​ где мне макрорекордер​Проблема вот в​ книг. Скопируйте нужное​

​ как нет и​​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() Dim​dzug​: Как создать новую​
​ памяти ПК.​ о чем это​ нужная книга и​ подобное в Нете​
​ 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.vs​Russia​sh.Range(sh.Cells(RowFind_l, 4), sh.Cells(lastrow,​Range(Cells(RowFind_l, 4), Cells(lastrow,​

​ вот это: Set​​xlsApp​ Excel.Workbook Dim xlsSh​ сейчас посмотрю в​

​Например​​4. Сохраняем Книгу1​: Хотел малой кровью​ идут в активной​

​ помогут.​​Set wb1 =​​ чтобы название было​
​ ниже строго привязан​Catstail​

planetaexcel.ru

Запомнить директорию активной книги. VBA

​: Спасибо! Просто были​​: хотел написать​
​ 4)).Select​ 4)).Select ‘ —>​ wb = ThisWorkbook.​, и с​ As Excel.Worksheet Dim​ VB6​Sub CreateWorkbook() Set​ на диске.​ отделаться. Спасибо за​ книге. Если так​Удачи!​ ThisWorkbook​ «Книга 2.xlsx», надо,​
​ к копированию в​
​: 1: Открыть VBA​

​ сомнения которые теперь​​Hugo​

​вот это было​​ Здесь почему то​ И где эта​xSh​ a&, n&, b&​dzug​

​ NewWorkbook = Workbooks.Add​​5. Закрываем Книгу1.​ пример.​

​ конечно возможно.​​k61​With wb1.Sheets(«Лист1»)​ чтобы название сюда​

​ определенный файл («Книга​​ — [Alt+F11]​ окончательно развеяны.​: Это уже ближе.​ бы «так и​ стопорится из-за того​ «wb» используется?​
​.Сам задал вопрос,​ Set xlsApp =​: Вылазит вот такая​ End Subсоздает книгу​6. Удаляем Книгу1​jfd​ber$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​ седьмой строке значение​а как изменить​
​ в котором была​Спасибо, так и​ то код как​jfd​Rng.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).Select​lastrow = 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).Row​Russia​ xlsSh.Cells(xlsSh.Rows.Count, 1).End(xlUp).Row Set​
​Запускать из VB6..​а например ‘Моя​

​ вопроса.​​: Добрый день!​ (хотя вроде как​

​ удосужились прочесть вопрос.​

CyberForum.ru

Обработка активной книги Excel

​If wb2.Name <>​​ файла в ячейку​ 1.xlsx», так как​ окно​ текст бокс1 и​Set sh =​Russia​next RowFind_ll​Johny​: Добрый вечер!​
​ 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).Row​Set wb =​ 1).End(xlUp).RowEnd Sub​Sub 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$erk​Application.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 MainMacro​Sub 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​ , значение не​
​ Здесь, видимо, тот​
​Заранее благодарен.​ книгой.​
​ Sub​Dendibar​’​’​ Но при условии,​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!​

​Russia​Russia​

​ — не переключается​​.Rows(«1:4»).Select​ Object LibraryРазобрался с​ = xlsSh.Cells(Rows.Count, 1).End(xlUp).Row​Спасибо за ответ.​
​Как Вы понимаете,​Alex_ST​ макросом из одной​: Юрий М, потому​ Вашим способом все​

​ ActiveWorkbook.Name​​Rows(«9:9»).Select​ Если книга не​ wb As Workbook​

​Юрий М​: Сообщение от 05.05.2011,​

​: Блин. Хорошо. Как​​ на окно этой​ActiveWindow.FreezePanes = True​

​ библиотекой..Спасибо.Да простят меня​ End Sub​

​Sub main() Dim​​ действия с Книгой1​: ThisWorkbook.Path​ команды​ что этот способ​ получилось.​Windows(«Книга 1.xlsx»).Activate​Selection.Copy​ открыта — ее​ Set wb =​: Возвращаясь к переключению​ 17:28​ сделать активным этот​ книги, остается в​End With​
​ администраторы за поднятие​Апострофф​ xlsApp As Object​ должны происходить в​ответ > Alex_ST​UserForm1.Show​ очевиден и предполагает​Всем остальным тоже​Rows(«9:9»).Select​Windows(«Книга 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»).Activate​ActiveSheet.Paste​ активизировать.​ ‘ Workbooks(‘Книга1.xls’).Worksheets(‘Лист1’).Activate ‘Имя​Octavian.vs​: Да, там я​ другой книги (ThisWorkbook)?​
​lastrow = sh.Cells(8,​
​k = 4​
​ вопрос стопроцентно по​
​ книга Excel открыта​

​ As Object Dim​​ только Книга113.​ кажется все будет​А Application.InputBox не​А кроме получения​jfd​Rows(«9:9»).Select​
​Range(«J5»).Select​мне кажется. тут​ последней заполненой ячейки​: Добрый день,​

​ не вникал.​Johny​

​ 5).End(xlDown).Row — это​​ ‘заполнение под «шапкой»​ этой теме.​ и название у​ a&, n&, b&​Sub Кнопка1_Щелкнуть() Dim​

​ работать положенно. Сейчас​​ пробовали?​
​ списка всех открытых​: Добрый день!​ActiveSheet.Paste​End 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​​: Спасибо, все нормально​
​ —​ других способов нет?​
​ времени и не​
​StoTisteg​Udik​
​На 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 As​dzug​ xlsSh = xlsWb.Sheets(2)​ Dim oSheet As​Inter_E​ демонстраций — чтобы​Выберите одну из открытых​
​ открытые файлы. После​ так и пишите​End Sub​

​Workbooks(«Книга1»).Activate​​Masalov​ ( .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 As​dzug​ 1).End(xlUp).Row End Sub​

planetaexcel.ru

Активация книг с именем находящимся в текстбоксе (Excel)

​ = oWbk.Worksheets.Item(«Лист1») ‘Находим​​ у меня код​ что происходит, для​ нажмите ОК.​ файл1 надо выбрать(указать​
​ один способ —​ не запутайтесь​ в настройках Windows​Windows(Me.TextBox1.Value).Activate​
​ файл, может есть​ 4)).Select ‘ —>​Russia​Sheets(a(i)).Columns(«E:F»).Cut​
​ что не переключается​ Excel.Workbook, xlsSh As​: Sub main() Dim​dzug​ Лист1 oSheet.Name =​ макроса расположен на​
​ ожидания завершения выполнения​
​» и одной кнопкой​ мышью, сделать активным)​ завести переменную, скажем,​.​ (в свойствах папки)​то, нет?​ какие-нибудь пути решения?​ Здесь почему то​: Задача. Мне необходимо​Columns(«A:A»).Select​ на другую книгу.​ Excel.Worksheet Dim txt$,​ xlsApp As Excel.Application​: Sub main() Dim​ «Новый лист» ‘Присваиваем​ Personal.book и поэтому​ какой-либо внешней операции​

​ ОК. По кнопке​​ один из открытых​
​ ИмяКниги и в​
​МВТ​

CyberForum.ru

​ указали — отображать​

workbooks(«»).Act…выбрать открытую книгу, зная часть имени

lFJl

Дата: Среда, 24.08.2016, 07:30 |
Сообщение № 1

Группа: Проверенные

Ранг: Форумчанин

Сообщений: 236


Репутация:

6

±

Замечаний:
0% ±


Excel 2013

Доброго дня, программа формирует отчет, и открывает его в excel файле с именем типа report*…, после * идет рандомный набор символов.
Как используя workbooks(«»).Activate сделать эту книгу активный, вообще это реально?

 

Ответить

buchlotnik

Дата: Среда, 24.08.2016, 09:17 |
Сообщение № 2

Группа: Заблокированные

Ранг: Участник клуба

Сообщений: 3442


Репутация:

929

±

Замечаний:
20% ±


2010, 2013, 2016 RUS / ENG

что за программа? на каком языке написана? тогда и обсудим

 

Ответить

Manyasha

Дата: Среда, 24.08.2016, 10:33 |
Сообщение № 3

Группа: Модераторы

Ранг: Старожил

Сообщений: 2198


Репутация:

898

±

Замечаний:
0% ±


Excel 2010, 2016

lFJl, как-то так, наверное:
[vba]

Код

Sub activateWbReport()
    Dim Wb As Workbook
    For Each Wb In Workbooks
        If Wb.Name Like [«report*»] Then Wb.Activate
    Next
End Sub

[/vba]


ЯД: 410013299366744 WM: R193491431804

 

Ответить

KuklP

Дата: Среда, 24.08.2016, 10:41 |
Сообщение № 4

Группа: Проверенные

Ранг: Старожил

Сообщений: 2369


Репутация:

486

±

Замечаний:
0% ±


2003-2010

Здесь подобное обсуждали


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728

 

Ответить

lFJl

Дата: Четверг, 25.08.2016, 09:42 |
Сообщение № 5

Группа: Проверенные

Ранг: Форумчанин

Сообщений: 236


Репутация:

6

±

Замечаний:
0% ±


Excel 2013

что за программа? на каком языке написана?

Программа «Microsoft Dynamics AX», на каком языке написана не интересовался, но это думаю в данной задаче не важно, т.к. работать в итоге нужно будет с excel’ем

открывает его в excel файле с именем типа report*

Manyasha, KuklP, Спасибо, все получилось! :)

 

Ответить

Понравилась статья? Поделить с друзьями:
  • Vba excel как выбрать дату
  • Vba excel как выбрать всю строку
  • Vba excel как вставить только значения
  • Vba excel как вставить столбец
  • Vba excel как вставить разрыв страницы