powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Как в экселе программно узнать наименование активной книги?
17 сообщений из 17, страница 1 из 1
Как в экселе программно узнать наименование активной книги?
    #34796934
vad-anatolij
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.
Сделал макрос, в котором делаю копию активной книги. Мне нужно закрыть оригинал (что б не путался под ногами). Для этого я понимаю:
1)Нужно определить название оригинальной книги (они могут по разному называться)
2)Объявить ее как переменную
Как в экселе программно узнать наименование активной книги?
Спасибо.
...
Рейтинг: 0 / 0
Как в экселе программно узнать наименование активной книги?
    #34796942
vkodor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
ActiveWorkbook.Name
...
Рейтинг: 0 / 0
Как в экселе программно узнать наименование активной книги?
    #34797037
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а если нужно закрыть книгу, в которой работает макрос, то лучше использовать
ThisWorkbook

IMHO


I Have Nine Lives You Have One Only
THINK!
...
Рейтинг: 0 / 0
Как в экселе программно узнать наименование активной книги?
    #34798323
vad-anatolij
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
HandKotа если нужно закрыть книгу, в которой работает макрос, то лучше использовать
ThisWorkbook

Мне нужно работать в копии ,а оригинал закрыть. Попытался так:
Макрос находится в PERSONAL.XLS, поэтому там же и объявил переменную
Код: plaintext
Public NameKnigi

Дальше в макрос ввел:
Код: plaintext
1.
2.
3.
    NameKnigi = ActiveWorkbook.Name
    ActiveSheet.Copy
    ActiveSheet.Name = "оппаньки"
    ActiveWindow.Zoom =  75 
Запускаю, проверяю в иммедиан

Код: plaintext
 ? NameKnigi

Пусто...хотя должно быть

Код: plaintext
Книга1.xls

Почему?
Спасибо.
...
Рейтинг: 0 / 0
Как в экселе программно узнать наименование активной книги?
    #34798861
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vad-anatolijПусто...хотя должно бытьНе должно. Пока книга ни разу не сохранена у нее нету имени.
...
Рейтинг: 0 / 0
Как в экселе программно узнать наименование активной книги?
    #34799299
vad-anatolij
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
White Owl vad-anatolijПусто...хотя должно бытьНе должно. Пока книга ни разу не сохранена у нее нету имени.

Сорри...сам запутался...у меня цель - получить в переменной название не копии, а оригинала ..что бы обратится к ней (к оригиналу) и закрыть.Как сохранить в переменной название первоначальной книги (оригинала)?
Спасибо.
...
Рейтинг: 0 / 0
Как в экселе программно узнать наименование активной книги?
    #34799380
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vad-anatolijСорри...сам запутался...у меня цель - получить в переменной название не копии, а оригинала ..что бы обратится к ней (к оригиналу) и закрыть.Как сохранить в переменной название первоначальной книги (оригинала)?Ничего не понимаю. Зачем тебе оригинальная книга?
Смотри, у тебя есть книга-шаблон. Открываешь ее, набиваешь новыми данными и сохраняешь под новым именем. Все. Ничего закрывать не нужно.
...
Рейтинг: 0 / 0
Как в экселе программно узнать наименование активной книги?
    #34799792
vad-anatolij
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
White Owl Зачем тебе оригинальная книга?...

Ну например в процессе выполнения макроса мне нужно перевести фокус на оригинал, а имя этой книги может быть разным.

В принципе вопрос можно сформулировать иначе: Как мне запомнить имя оригинальной книги?
...
Рейтинг: 0 / 0
Как в экселе программно узнать наименование активной книги?
    #34799866
Pavel55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Dim OrigWB As Workbook
Set OrigWB = ActiveWorkbook
'делаете, что хотите
'Возврат в оригинальную книгу. Только это не обязательно делать
Windows(OrigWB).Activate
'Вот как можно взять значения из оригинальной книги, не отображая её
i = OrigWB.Sheets("Лист1").Range("A1").Value
MsgBox i
...
Рейтинг: 0 / 0
Как в экселе программно узнать наименование активной книги?
    #34799873
Pavel55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
точнее вот так )

Код: plaintext
Windows(OrigWB.Name).Activate
...
Рейтинг: 0 / 0
Как в экселе программно узнать наименование активной книги?
    #34801900
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vad-anatolijНу например в процессе выполнения макроса мне нужно перевести фокус на оригинал, а имя этой книги может быть разным.А зачем тебе имя? Возьми ссылку на книгу и все.
И вообще, покажи сначала как ты оригинальную книгу копируешь в неоригинальную. Что-то у меня сильное подозрение что ты решаешь задачу методом надевания штанов через голову.

vad-anatolijВ принципе вопрос можно сформулировать иначе: Как мне запомнить имя оригинальной книги?Зависит от того, что ты считаешь оригинальной книгой. Можно например так:
Код: plaintext
NameOfOriginalBook = ActiveWorkbook.Name 
или так:
Код: plaintext
NameOfOriginalBook = ThisWorkbook.Name 
или так:
Код: plaintext
NameOfOriginalBook = Workbooks.Open("original.xls").Name 
...
Рейтинг: 0 / 0
Как в экселе программно узнать наименование активной книги?
    #34803897
vad-anatolij
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
White Owl ..как ты оригинальную книгу копируешь в неоригинальную...

Копированием листа в новую книгу
Код: plaintext
1.
2.
3.
4.
ActiveSheet.Copy
    ActiveSheet.Name = "трампам"
ActiveWorkbook.SaveAs Filename:="D:\Копия.xls", FileFormat:= _
        xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
        , CreateBackup:=False
...
Рейтинг: 0 / 0
Как в экселе программно узнать наименование активной книги?
    #34804195
zazelino
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите , пожалуйста. Создан шаблон Profile.exe Каждый день этот файл корректируется и запоминается под другим именем, например, Factura1560 rus SPtb.exe или Factura1561 ukr Kiev.exe Наименование листов, массивов и др. не меняется. Требуется сделать промежуточный файл, в котором будет информация из этих файлов. Как открывать файлы с разными именами по заданному признаку или подряд ?
...
Рейтинг: 0 / 0
Как в экселе программно узнать наименование активной книги?
    #34805006
vad-anatolij
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
White Owl ...Зависит от того, что ты считаешь оригинальной книгой...

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

Вариант

Код: plaintext
1.
2.
3.
Dim OrigWB As Workbook
Set OrigWB = ActiveWorkbook
Windows(OrigWB).Activate

Должен подойти, но почему то у меня ексель (2003) ругается на "Set"..хотя в учебниках я позже тоже нашел именно такой вариант. Почему ругается пока не понял.Может кто подскажет?Наверняка грабли известные?
...
Рейтинг: 0 / 0
Как в экселе программно узнать наименование активной книги?
    #34805891
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vad-anatolij White Owl ...Зависит от того, что ты считаешь оригинальной книгой...
Под оригинальной я подразумеваю книгу в которой включил макрос. В процессе работы макроса активной становится совсем другая книга.Тогда используй ThisWorkbook это специальное имя которое ВСЕГДА указывает на книгу в которой находится работающий в данный момент макрос.
Код: plaintext
ThisWorkbook.Activate
Переключит на ту книгу, макрос из которой выполнил эту строчку.

vad-anatolijВариант

Код: plaintext
1.
2.
3.
Dim OrigWB As Workbook
Set OrigWB = ActiveWorkbook
Windows(OrigWB).Activate

Должен подойти, но почему то у меня ексель (2003) ругается на "Set"..хотя в учебниках я позже тоже нашел именно такой вариант. Почему ругается пока не понял.Может кто подскажет?Наверняка грабли известные?Во первых, ты забыл сказать как именно ругается. Во вторых, скорее всего опечатался в имени переменной OrigWB. Ну и в третьих, не надо активировать окно, надо активировать саму книгу. OrgiWB.Activate и все
...
Рейтинг: 0 / 0
Как в экселе программно узнать наименование активной книги?
    #34811658
vad-anatolij
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В продолжении
vad-anatolij ... у меня ексель (2003) ругается на "Set"..хотя в учебниках я позже тоже нашел именно такой вариант....
White OwlВо первых, ты забыл сказать как именно ругается. Во вторых, скорее всего опечатался в имени переменной OrigWB...

Сделал
Код: plaintext
1.
2.
3.
4.
Dim w As Workbook
Set w = ActiveWorkbook
i = w.Name
MsgBox i

Выделяет "Set" и говорит "инвалид оутсайд процедур"
В чем может быть ошибка?
Спасибо.
...
Рейтинг: 0 / 0
Как в экселе программно узнать наименование активной книги?
    #34812648
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vad-anatolijВыделяет "Set" и говорит "инвалид оутсайд процедур"
В чем может быть ошибка?
Эта.... а ты куда этот код пишешь? Это должно быть содержимым макроса. У тебя в модуле должно быть что-то вроде:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Option Explicit

Sub MyCoolMacro()
   Dim w As Workbook, i as String
   Set w = ActiveWorkbook
   i = w.Name
   MsgBox i
End Sub
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Как в экселе программно узнать наименование активной книги?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]