Remkomplekty.ru

IT Новости из мира ПК
1 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Excel vba workbooks open

VBA-Урок 11.1. События рабочей книги (Workbook Events)

Мы можем иметь события рабочей книги (например, открытие, закрытие и т.д.), которые могут быть триггерами (переключателями) для VBA кода.

Workbook_Open (Открытие книги)

Чтобы выполнить инструкции, когда открывается рабочая книга, идем к ThisWorkbook и выбираем Workbook :

Событие Workbook_Open будет добавлено по умолчанию и будет действовать во время открытия книги:

Например, если мы добавим следующую инструкцию, тогда диалоговое окно будет отображено при открытии книги:

Workbook_BeforeClose (Событие перед закрытием книги)

Чтобы выполнить инструкции перед самым закрытием книги, выберите BeforeClose

Закрытие книги может быть отменено, если присвоить значение True к переменной «Cancel».

Ниже приведен пример, в котором пользователя спрашивают подтверждение на закрытие рабочей книги:

Workbook_BeforeSave (Событие перед сохранением книги)

Это событие возникает сразу перед самым сохранением рабочей книги:

Сохранение файла может быть отменено присвоением значения True к переменной «Cancel».

Workbook_BeforePrint (Событие перед печатью книги)

Это событие возникает перед самой печатью рабочей книги:

Печать файла может быть отменена присвоением значения True к переменной «Cancel».

Workbook_AfterSave (Событие после сохранения книги)

Это событие возникает сразу после сохранением рабочей книги:

Workbook_SheetActivate (Событие переключения рабочего листа)

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

В этом примере, название активированного листа отображается в диалоговом окне

Workbook_SheetBeforeDoubleClick (Событие двойного щелчка по ячейке)

Это событие возникает при двойном щелчке на ячейке рабочего листа

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

Workbook_SheetBeforeRightClick (Событие перед правым кликом)

Это событие возникает перед самым кликом правой кнопки мыши

Workbook_SheetChange (Событие изменения содержания листа)

Это событие возникает каждый раз, когда меняется содержание рабочего листа

Workbook_SheetCalculate (Событие пересчете листа)

Это событие возникает каждый раз, когда рассчитываются или пересчитываются данные на рабочем листе:

Workbook_SheetSelectionChange (Событие изменения выбранного диапазона ячеек)

Это событие возникает каждый раз, когда меняется содержание выбранного диапазона ячеек на расчетном листе

В этом примере, изменяется цвет заливки, если ячейка А1 пуста

Workbook_NewSheet (Событие добавления нового листа)

Это событие возникает каждый раз, когда добавляется новый лист в рабочую книгу:

Workbook_SheetFollowHyperlink (Событие нажатия на ссылку)

Это событие возникает при нажатии на ссылку (гипертекст):

VBA-Урок 11.1. События рабочей книги (Workbook Events)

Мы можем иметь события рабочей книги (например, открытие, закрытие и т.д.), которые могут быть триггерами (переключателями) для VBA кода.

Workbook_Open (Открытие книги)

Чтобы выполнить инструкции, когда открывается рабочая книга, идем к ThisWorkbook и выбираем Workbook :

Событие Workbook_Open будет добавлено по умолчанию и будет действовать во время открытия книги:

Например, если мы добавим следующую инструкцию, тогда диалоговое окно будет отображено при открытии книги:

Workbook_BeforeClose (Событие перед закрытием книги)

Чтобы выполнить инструкции перед самым закрытием книги, выберите BeforeClose

Закрытие книги может быть отменено, если присвоить значение True к переменной «Cancel».

Ниже приведен пример, в котором пользователя спрашивают подтверждение на закрытие рабочей книги:

Workbook_BeforeSave (Событие перед сохранением книги)

Это событие возникает сразу перед самым сохранением рабочей книги:

Сохранение файла может быть отменено присвоением значения True к переменной «Cancel».

Workbook_BeforePrint (Событие перед печатью книги)

Это событие возникает перед самой печатью рабочей книги:

Печать файла может быть отменена присвоением значения True к переменной «Cancel».

Workbook_AfterSave (Событие после сохранения книги)

Это событие возникает сразу после сохранением рабочей книги:

Workbook_SheetActivate (Событие переключения рабочего листа)

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

В этом примере, название активированного листа отображается в диалоговом окне

Workbook_SheetBeforeDoubleClick (Событие двойного щелчка по ячейке)

Это событие возникает при двойном щелчке на ячейке рабочего листа

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

Workbook_SheetBeforeRightClick (Событие перед правым кликом)

Это событие возникает перед самым кликом правой кнопки мыши

Workbook_SheetChange (Событие изменения содержания листа)

Это событие возникает каждый раз, когда меняется содержание рабочего листа

Workbook_SheetCalculate (Событие пересчете листа)

Это событие возникает каждый раз, когда рассчитываются или пересчитываются данные на рабочем листе:

Workbook_SheetSelectionChange (Событие изменения выбранного диапазона ячеек)

Это событие возникает каждый раз, когда меняется содержание выбранного диапазона ячеек на расчетном листе

В этом примере, изменяется цвет заливки, если ячейка А1 пуста

Читать еще:  Excel vba формула в ячейке

Workbook_NewSheet (Событие добавления нового листа)

Это событие возникает каждый раз, когда добавляется новый лист в рабочую книгу:

Workbook_SheetFollowHyperlink (Событие нажатия на ссылку)

Это событие возникает при нажатии на ссылку (гипертекст):

VBA code to open workbook

The behavior when you open a workbook depends on both global excel settings and arguments chosen when saving the excel file using :

  • Whether a password needs to be specified.
  • Whether a message appears when the file is opened, recommending that the file be opened as read-only — see also Workbook.ReadOnlyRecommended property.
  • Whether external references (links) in the file, such as the reference to a range in another workbook, are to be updated — see also Workbook.UpdateLinks property.

An example of the VBA code te open an Excel file which requires ca password and contains links that need to be updated:

Filename

The file name of the workbook to be opened.

UpdateLinks

Specifies the way external references (links) in the file such as the reference to a range in the Budget.xls workbook in the following formula =SUM([Budget.xls]Annual!C10:C25) are updated. You can specify one of the following values in the UpdateLinks parameter to determine whether external references (links) are updated when the workbook is opened.

If UpdateLinks is omitted the user is prompted to specify how links will be updated.

UpdateLinks:=0 — External references (links) will not be updated when the workbook is opened.
UpdateLinks:=3 — External references (links) will be updated when the workbook is opened.

An example of code inserted for opening an excel file without updating links is below.

ReadOnly

True to open the workbook in read-only mode.

Password arguments

There are two Password arguments with different purposes. In both cases, if this argument is omitted and the workbook requires a password the user will be prompted for the password.

Password

The Password argument contains the password required to open a protected workbook.

WriteResPassword:

The WriteResPassword argument contains the password required to write to a write-reserved workbook.

IgnoreReadOnlyRecommended

Make IgnoreReadOnlyRecommended:=True to prevent Microsoft Excel from showing the read-only recommended message (if the workbook was saved with the Read-Only Recommended option).

Arguments for opening a text file

Format

If Microsoft Excel opens a text file the Format argument specifies the delimiter character. If this argument is omitted the current delimiter is used.For more information about the values used by this parameter see the Remarks section.

Origin (Windows or Mac)

Origin may only have one of the following XlPlatform constants: xlMacintosh, xlWindows or xlMSDOS.If this argument is omitted the current operating system is used.

Delimiter

If the file is a text file and the Format argument is 6 this argument is a string that specifies the character to be used as the delimiter. For example use Chr(9) for tabs use for commas use ; for semicolons or use a custom character.Only the first character of the string is used.

Editable

If the file is an Excel template add argument Editable:=True to open the specified template for editing. The default value is False which opens a new workbook based on the specified template.

Notify

If the file cannot be opened in read/write mode this argument is True to add the file to the file notification list. Excel will open the file as read-only poll the file notification list and then notify the user when the file becomes available. If this argument is False or omitted no notification is requested and any attempts to open an unavailable file will fail.

Converter

The index of the first file converter to try when opening the file. The specified file converter is tried first; if this converter does not recognize the file all other converters are tried. The converter index consists of the row numbers of the converters returned by the FileConverters property.

Add to Most Resently Used files list (AddToMru)

To add this workbook to the list of recently used files add argument AddToMru:=True

Local

True saves files against the language of Microsoft Excel (including control panel settings).False (default) saves files against the language of Visual Basic for Applications (VBA) (which is typically United States English unless the VBA project where Workbooks.Open is run from is an old internationalized XL5/95 VBA project).

Читать еще:  Excel to sql

CorruptLoad

Can be one of the following constants: xlNormalLoad xlRepairFile and xlExtractData. The default behavior if no value is specified is xlNormalLoad and does not attempt recovery when initiated through the OM.

Application.AutomationSecurity

Workbook_Open event

The Workbook_Open event occurs when the workbook is opened.

Below code maximizes Microsoft Excel whenever the workbook is opened. You will place such code un the ThisWorkbook class module.

Test if workbook is open (function)

You can test if a workbook is open by checking if the Name of the workbook is in the Workbooks collection, see Function WorkbookIsOpen below.

CODE VBA — AGORA Software BV Copyright 1997-2019

VBA Workbook Open

Excel VBA Workbooks.Open Method

VBA Workbooks.Open Method is used to open an excel workbook from another workbook.

As far as VBA is concerned I hope you have seen the magic and wonders VBA can do at your workplace. One of the substantial thing about VBA is it doesn’t limit its work in the same workbook rather we can access the workbook which is already not opened. One of such a technique is we can open another workbook from a different workbook. In this special article, we will show you how to open excel workbook using Workbooks.Open method in detail.

Open a Workbook from Current Workbook

Just imagine a situation where you are working with two workbooks which are already opened. The workbook that you are working is named as “Book 1” and another workbook which is open but not active is named as “Book 2”.

Since we are working in “Book 1” in order to activate another workbook “Book 2” we need to specify the workbook name with its file extension by using WORKBOOKS object.

Inside this, we need to enter the workbook name and its extension.

Then we need to insist on what we need to do with this workbook. Since we need to activate this workbook select “Activate” method.

So, this code will activate the workbook “Book 2.xlsx” if it is opened.

What if the workbook “Book 2.xlsx” is not opened. How do you open it or activate it.

This is where our Workbooks.Open method comes into the picture.

Syntax

  • File Name: The first argument in this method is we need to specify the workbook name that we are trying to open. Workbook name alone cannot do the job here, because excel doesn’t know in which folder your workbook is saved. So we need to supply full folder path followed by an exact file name with its saved extension.
  • Update Links: When we try to open the workbook it may have contained some external links from other workbooks. We can supply yes or no here.
  • Read Mode: How do you want to open the workbook?? If you want the file only to be read then TRUE is the argument.
  • Password: If the targeted or opening workbook contains any password then in this argument we need to specify the password that was used while protecting the workbook.

These four arguments are good enough in this method. Do not break your head to understand each and every argument because the need for those remaining arguments may never arise.

Excel vba workbooks open

Есть файлы *.htm их надо открывыть в Excel2000 для последующей автоматической обработки посредствам VBA.
Если открывать Workbooks.Open Filename:= _»имя файла» из существующего документа exсel то файл открывается в новом автоматически создающемся документе excel. Возможно ли сделать так, чтобы файл открывался не в новом созданном документа, а на второй странице существующего?
Мне в голову приходит только такой вариант: открыть файл из текущего документа , затем из нового созданной документа excel скопировать данные этого файла в старый документ exсel и закрыть новый созданный. — Может есть какой нибудь более правильный/умный способ?

Читать еще:  Subscript out of range vba excel

Можно ли открыть в одном и том же документе excel несколько файлов и чтобы они присутствовали в нём одновременно?

Как средствами VBA для открытия файлов не задавать точное имя файла (Workbooks.Open Filename:= _»имя файла» ), а вызвать диалоговое окно типа стандартного для открытия файлов — Файл->Открыть ?

Почему при открытии файла Файл->Открыть некторые числа файла в Excel’e отображаются как Дата — май.43 , а при открытии через VBA Workbooks.Open Filename:= _» все чесла отображаются нормально?

ВВ
1. без добавления новой книги, можно считывать данные на прямую из закрытой книги эту функцию можешь посмотреть и доработать Ссылка на ячейки другой книги в этой же директории без указания полного пути (http://forum.ixbt.com/topic.cgi?id=23:29699) (что будет непонятно обращайся помогу)
или как вариант открываем как обычно потом копируем лист нужный, и закрываем исходный файл
(ну этот вариант ты уже и сам увидел)

2. вызов диалогового окна

Добавление от 29.10.2005 17:49:

это проблема с десятичным разделителем для русской раскладки это «,» для английской «.» (вроде так )
вообщем когда ты открываешь и считываешь с десятичным разделителем точка, то Excel расценивает это как дату, если бы была запятая все было бы ок.
мне твой вариант повторить не удалось с разным открытием что так что так открывалось одинаково

V3
1. без добавления новой книги, можно считывать данные на прямую из закрытой книги эту функцию можешь посмотреть и доработать
Ещё непопробовал. Данные возможно считывть только из закрытой книги excel? Из закрытого файла *.htm их тоже возможно считывать, если доработать функцию?

2. вызов диалогового окна
Нехочет у меня эта процедура работать ругается на FileDialog — user-defined type not defined. Надо какие то библиотеки подключать? Или прототипы библиотечных функций писать?

Добавление от 30.10.2005 20:47:

C датами как то странно, несовсем понял. Excel файлы по какому то разному методу открывает: если вручную Файл->Открыть — то даты получаются вместо чисел, а если на VBA Workbooks.Open Filename:= то всё нормально.
Поменял в настройках(Язык и стандарты) запятую на точку и всё стало нормально и при открытии через Файл->Открыть. Только это всё будет использоваться на разных компах. хотел бы добиться полной автоматизированности — без инструкций юзерам — «Поменяйте там то на то то. «

но лучше наверно попробовать сходу считывать данные без открытия и подменять разделитель
или когда считали данные их уже обработать

Есть ли какая нибудь стандартная функция которая конвертит дату в число? — только нормальное число которое было в оригинальном файле, а не то что excel выдаёт если поменять формат ечейки с даты на числовой.

P.S. Делаю всё в Win2K Excel2000

ВВ
1. можно и из html брать, только надо смотреть как организовать это дело или как просто чтение из текстового файла. Та функция что по ссылки с html работать не будет

2. Упсс извени не посмотрел твою версию Excel
FileDialog появился с версии 2002, поэтому предыдущими версиями не поддерживается
тебе надо использовать
object.GetOpenFilename (фильтр файла, идекс фильтра, заголовок, подпись кнопки, множественный выбор)
набирал с листа так сказать, поэтому могут быть синтаксические помарки поправь если что

Добавление от 30.10.2005 21:43:

ВВ
как вариант добавить макрос на открытие книги чтобы искал и точку заменял на запятую (ИМХО может есть проще)

Добавление от 31.10.2005 03:51:

Исправил не большую ошибку, и немного расширил пример чтобы было понятнее
В данном примере кода нельзя использовать выделения файлов с Ctrl и Shift (т.е. сразу несколько) для этого надо изменить немного

По поводу точки/запятой может быть надо проверять версию Excel (русская/английская)

Спасибо за ответы!

V3
1. Решил пойти всё же первым варинатом — открыть и оттуда скопировать.

2.

Хотел только ещё указать каталог в котором открывать через ChDir, но неполучилось

3. как вариант добавить макрос на открытие книги чтобы искал и точку заменял на запятую (ИМХО может есть проще)

Если я поставлю макрос полсе того как открою: Workbooks.Open Filename:= , то он уже непоможет, так как уже будут даты. А как его поставить на открытие книги?

Добавление от 31.10.2005 09:28:

да я и ошибки то незаметил, опечатка только strig вместо string

Ссылка на основную публикацию
ВсеИнструменты
Adblock
detector
×
×