vba как открыть файл



Vba открыть файл excel

Автор Михаил Капустин задал вопрос в разделе Другие языки и технологии

VBA Excel. Как обратиться к листу/ячейке УЖЕ ОТКРЫТОГО и не сохранённого файла excel? и получил лучший ответ

Ответ от East RX[гуру]
Workbooks("file name").Worksheets(...
или
Set newbook = Workbooks.Item("file name")

Ответ от Їайкин Виталий[гуру]
Возможно решением будет передавать данные ИЗ открытого файла. "Внутри открытого файла" пишем макрос, который и передает нужные данные.

Ответ от Ўля Павлова[гуру]
Ваша ошибка в том, что Open открываете уже открытый файл, и он закрывается перед открытием, очищая блоки управления.
Правильно в программе активировать (Activate) книгу, если с ней много работы. Затем активировать лист и ячейку, но часто их достаточно выбрать (Select).
Application.Workbooks("имя_файла").Activate
ActiveWorkbook.Worksheets("имя_листа").Range("A5").Select
MsgBox Selection
Для книги в коллекции книг Workbooks можно указывать порядковый номер файла, автоматически присвоенный при открытии. Порядок можно определить
в списке окон Windows (в Excel) или глядя по-еврейски (справа-налево) на ярлыки открытых Excel-файлов на Панели задач. Но этим номером в автоматической программе пользоваться не рекомендуется, так как можно перед запуском вручную закрыть или открыть какие-то файлы и порядок изменится, да и количество. Свежеоткрытый файл меет порядковый номер 1, то есть попадает в голову коллекции. Значит этот способ пригоден только для фиксированного числа открытых файлов.
Правильно вместо номера задавать ИМЯ открытого файла (и даже заранее отслеживать ситуацию, открыт ли он).
Лист надо также выбирать или активировать по его ИМЕНИ на вкладке в рабочей книге. Но можно и по порядковому номеру вкладки. Дело в том, что при создании НОВОГО листа он открывается по-еврейски в левой вкладке книги и автоматически получает номер 1 в коллекции листов книги. Tо есть свежий лист это всегда Worksheets(1). Но его затем можно передвинуть среди вкладок и он этого номера не потеряет, но вы можете запутаться (как и с файлами)! Правильный порядковый номер листа (вместе с именем в скобках) можно увидеть в среде VBA в списке проекта.
Пользуясь именами, вы не ошибётесь, но для этого произвольные имена нужно уметь запоминать в программе, чтобы потом обращаться к ним в процессе выполнения.

Ответ от Єаимя Салихова[гуру]
Память не может быть READ!!! 🙂
• Excel при его Открытии Вываливает в Виртуальное Пространство ОЗУ свою текущую Информацию. Такова Windows, и таков порядок её Организации.
• Excel Создаёт в Temp-Каталоге Файлы Пошагового Изменения. Они нужны, чтобы с помощью Отката Команды (Ctrl+Z) можно было вернуться к предыдущим Состояниям.
• Excel каждые 10 (если не ошибаюсь) минут Создаёт в Temp-Каталоге по одной Резервной Копии с текущего Состояния Открытого Документа (Фоновое Автосохранение).
• Excel Создаёт в том Месте, откуда Пользователем был Открыт Файл Временный Информационный Файл. В случае Аварийного Завершения Работы (внезапное обесточивание компа). Если при Работе в Excel`е всё пройдёт успешно, и в конце Пользователь/сама Операционная Система Закроет Файл (не важно с Сохранением или без), тогда этот Файл будет Стёрт Excel`ем. Активные Файлы, как и Память (которая не может быть READ) точно также не могут быть READ!!! 🙂
Следовательно надо, чтобы что-то извне давало бы команду или какую-то Связь (через которую будут Выполняться какие-то Фоновые Задания, или что-то там, что надо Запустить в VBA). Значит надо загодя в сам Стандартный Шаблон умышленно Вставить Код, когда ещё не запущен Excel. Excel всегда Открывает Новый Документ из имеющегося Шаблона.
Только я не знаю наверняка, когда с помощью Excel`я Открываешь уже имеющийся Документ, будет ли он Обращаться к Шаблонам, чтобы посредством их Подстановки Эмулировать что-то нужное!!! Потому что Эмуляцию заготовленных Шаблонов не все Программы и не во всём используют. В AutoCAD`е Эмулируются только Высокоуровневые Шрифты (Системные он вообще не распознаёт). В HTTP вообще Эмулируются только несколько Высокоуровневых Шрифтов. Кстати, их последователи, Android (Операционная Система, Организованная на основе Табличной Разметки) точно также Эмулируют только несколько Высокоуровневых Шрифтов (из них лишь несколько собственных).
— о развитии компов и усилении роли SGML-образных Языков.
— о развитии Продуктов MS-Office (Excel — всего лишь одна из Программ данного Пакета, изначально привязанная к SGML-образному Языку).
23:05 21.07.2017
PS. Насколько я понимаю, на Активные Файлы в Windows можно влиять через Реестр, Прописав Доступные Действия для Активных Файлов. Расширять возможности Excel`я, наверное, придётся прямо отсюда из «Базы Данных» Windows. Т. е. где-то здесь должна быть лазейка?! ?\_(°·о) _/?
23:12 21.07.2017

Ответ от 22 ответа[гуру]
Привет! Вот подборка тем с похожими вопросами и ответами на Ваш вопрос: VBA Excel. Как обратиться к листу/ячейке УЖЕ ОТКРЫТОГО и не сохранённого файла excel?
 

Ответить на вопрос:

Имя*

E-mail:*

Текст ответа:*
Проверочный код(введите 22):*