powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Пара простых вопросов
8 сообщений из 8, страница 1 из 1
Пара простых вопросов
    #35761740
romazeka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
1. Допустим у меня открыто несколько рабочих книг. Как макросно закрыть книгу имя которой лежит напрример в ячкейке А1?
2. ThisWorkbook.path даёт путь с директориями, а мне нужен просто диск?
...
Рейтинг: 0 / 0
Пара простых вопросов
    #35761780
Mitar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, эт надобно ознакомиться с коллекциями в Excel (WorkBooks,WorkSheets).

Можно попробовать так:
Application.WorkBooks(ActiveWorkBooks.WorkSheets("Лист1").Range("A1")).Close SaveChanges:=True.

Application.WorkBooks - эт мы обратились к открытым книгам Excel.
ActiveWorkBooks.WorkSheets("Лист1").Range("A1") - эт мы указываем имя книги, с которой будем работать.
И вызываем метод Close - чтобы закрыть. SaveChanges - эт хотим ли мы сохранить ее перед закрытием али нет.
...
Рейтинг: 0 / 0
Пара простых вопросов
    #35761846
romazeka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не срабатывает в том то и дело пишу конкретно вот как :
Workbooks(Range("A1")).Close savechanges:=False

по длинному тоже не хочет еррор дебаг и тд
Workbooks(Workbooks("пересчёт.xlsm").Worksheets("Лист1").Range("A1")).Close savechanges:=False
...
Рейтинг: 0 / 0
Пара простых вопросов
    #35761880
Mitar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а приведите пример имен, которые хранятся в ячейках, в частности A1.
В WorkBooks() мы подаем просто имя книги, без никакого расширения.
...
Рейтинг: 0 / 0
Пара простых вопросов
    #35761959
romazeka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
1. Что с расширениями что без результат тот же - строка не работает :

Workbooks(Workbooks("пересчёт.xlsm").Worksheets("Лист1").Range("A1")).Close savechanges:=False

2. без расширения в файле (пересчёт.xlsm) в пути, тоже не работает :

Workbooks(Workbooks("пересчёт").Worksheets("Лист1").Range("A1")).Close savechanges:=False

error 13 - type mistmatch
...
Рейтинг: 0 / 0
Пара простых вопросов
    #35762049
nporaMep
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пример имени?

Workbooks(CStr(Workbooks("пересчёт").Worksheets("Лист1").Range("A1").Value)).Close savechanges:=False

Может так попробуйте.
...
Рейтинг: 0 / 0
Пара простых вопросов
    #35762055
nporaMep
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ещё как вариант в книге имя которой вы якобы указываете в A1 сделайте маленький макрос

sub q
msgbox thisworkbook.Name
end sub
...
Рейтинг: 0 / 0
Пара простых вопросов
    #35762084
romazeka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
пример имени - Ск_Новос (склад Новосельковская означает :) )

А вот последнее предложение рабочее

nporaMepПример имени?

Workbooks(CStr(Workbooks("пересчёт").Worksheets("Лист1").Range("A1").Value)).Close savechanges:=False

Может так попробуйте.

Причём работает в обоих случаях если в яч A1 лежит имя и с расширением - "Ск_Новос.xlsx" и без - "Ск_Новос"

А так же всё работает если убрать CStr() => .Value - имеет ключевое значение

Первый вопрос закрыт, благодарствую участников
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Пара простых вопросов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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