Как открыть workbook в excel
выражение . Open( FileName , UpdateLinks , ReadOnly , Format , Password , WriteResPassword , IgnoreReadOnlyRecommended , Origin , Delimiter , Editable , Notify , Converter , AddToMru , Local , CorruptLoad )
выражениеПредставительWorkbooksПеременные объекта.
параметры
Возвращаемое значение
Представитель открытой рабочей книгиWorkbookОбъект.
комментарий
По умолчанию макросы включаются при открытии файлов программно. использованиеAutomationSecurityАтрибуты могут устанавливать режим безопасности макросов, используемый при программном открытии файлов.
Вы можете указать одно из следующих значений в параметре UpdateLinks, чтобы определить, обновлять ли внешние ссылки (ссылки) при открытии книги.
значение | смысл |
---|---|
0 | Внешние ссылки (ссылки) не обновляются при открытии книги. |
3 | Обновлять внешние ссылки (ссылки) при открытии книги. |
Вы можете указать одно из следующих значений в параметре Format, чтобы определить символ разделителя файла.
значение | сепаратор |
---|---|
1 | тег |
2 | запятая |
3 | пустой |
4 | точка с запятой |
5 | нет |
6 | Пользовательские символы (см.DelimiterПараметр) |
примеров
В следующем примере кода открывается книга Analysis.xls, а затем запускается ее макрос Auto_Open.
В следующем примере кода импортируется лист из другой книги в новый лист в текущей книге. Лист 1 текущей рабочей книги должен содержать путь к книге, которую нужно импортировать в ячейку D3, имя файла в ячейке D4 и имя листа в ячейке D5. Импортированный лист будет вставлен после Листа 1 в текущую книгу.
Хотите создавать решения, которые расширяют возможности Office на разнообразных платформах? Ознакомьтесь с новой моделью надстроек Office. Надстройки Office занимают меньше места по сравнению с надстройками и решениями VSTO, и вы можете создавать их, используя практически любую технологию веб-программирования, например HTML5, JavaScript, CSS3 и XML.
Синтаксис
выражения. Open (FileName, UpdateLinks, ReadOnly, Format, Password, WriteResPassword, IgnoreReadOnlyRecommended, Origin, Delimiter, Editable, Notify, Converter, AddToMru, Local, CorruptLoad)
выражение Переменная, представляюная объект Книги .
Параметры
Имя | Обязательный или необязательный | Тип данных | Описание |
---|---|---|---|
FileName | Необязательный | Variant | Строка. Имя файла книги, которая должна быть открыта. |
UpdateLinks | Необязательный | Variant | Указывает, как обновляются внешние ссылки (ссылки) в файле, =SUM([Budget.xls]Annual!C10:C25) например ссылка на диапазон в книге Budget.xls в следующей формуле. Если этот аргумент не указан, пользователю будет предложено указать, как будут обновляться ссылки. Дополнительные сведения о значениях, используемых этим параметром, см. в разделе Примечание. |
Возвращаемое значение
Объект Книги , представляю который представляет открытую книгу.
Примечания
По умолчанию макрос включен при открытии файлов программным путем. Используйте свойство AutomationSecurity , чтобы настроить режим макрос безопасности, используемый при открытии файлов программным способом.
Вы можете указать одно из следующих значений в параметре UpdateLinks , чтобы определить, обновляются ли внешние ссылки (ссылки) после открытия книги.
Значение | Описание |
---|---|
0 | Внешние ссылки (ссылки) не обновляются после открытия книги. |
3 | Внешние ссылки (ссылки) будут обновляться после открытия книги. |
Можно указать одно из следующих значений в параметре Format , чтобы определить характер делимитера для файла.
Значение | Delimiter |
---|---|
1 | Вкладки |
2 | Запятые |
3 | Пробелы |
4 | Semicolons |
5 | Отсутствует |
6 | Настраиваемый символ (см. аргумент Delimiter ) |
Пример
В следующем примере кода открывается книга Analysis.xls, а затем выполняется Auto_Open макрос.
В следующем примере кода лист из другой книги импортируется на новый лист в текущей книге. Sheet1 в текущей книге должен содержать имя пути для импорта книги в ячейке D3, имя файла в ячейке D4 и имя листа в ячейке D5. Импортируемый лист вставляется после sheet1 в текущей книге.
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.
Объект Workbook входит в коллекцию книг . Коллекция книг содержит все объекты книги, открытые в настоящее время в Microsoft Excel.
Свойство ThisWorkbook объекта Application возвращает книгу, в которой Visual Basic код. В большинстве случаев это то же самое, что и активная книга. Однако если код Visual Basic является частью надстройки, свойство ThisWorkbook не возвращает активную книгу. В этом случае активная книга — это книга, вызываемая надстройка, в то время как свойство ThisWorkbook возвращает надстройку.
Если вы создаете надстройку из кода Visual Basic, следует использовать свойство ThisWorkbook, чтобы квалифицировать любое утверждение, которое должно быть запускаться в книге, которую вы компиляторите в надстройку.
Пример
Чтобы вернуть один объект книги, используйте книги (индекс), индекс которых является именем книги или номером индекса. В следующем примере активируется книга.
Номер индекса обозначает порядок открытия или создания книг. Workbooks(1) является первой созданной книгой и Workbooks(Workbooks.Count) последней созданной. Активация книги не меняет ее номер индекса. Все книги включены в число индексов, даже если они скрыты.
Свойство Name возвращает имя книги. Вы не можете установить имя с помощью этого свойства; Если необходимо изменить имя, используйте метод SaveAs для сохранения книги под другим именем.
В следующем примере в книге с именем Cogs.xls (книга уже должна быть открыта в Microsoft Excel).
Свойство ActiveWorkbook объекта Application возвращает трудовую книжку, которая в настоящее время активна. В следующем примере устанавливается имя автора для активной книги.
В этом примере вкладка таблицы из активной книги передается по электронной почте с помощью указанного адреса электронной почты и темы. Чтобы запустить этот код, активный электронный таблица должна содержать адрес электронной почты в ячейке A1, субъект в ячейке B1 и имя таблицы для отправки в ячейку C1.
События
Методы
Свойства
См. также
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.
Interested in developing solutions that extend the Office experience across multiple platforms? Check out the new Office Add-ins model. Office Add-ins have a small footprint compared to VSTO Add-ins and solutions, and you can build them by using almost any web programming technology, such as HTML5, JavaScript, CSS3, and XML.
Syntax
expression.Open (FileName, UpdateLinks, ReadOnly, Format, Password, WriteResPassword, IgnoreReadOnlyRecommended, Origin, Delimiter, Editable, Notify, Converter, AddToMru, Local, CorruptLoad)
expression A variable that represents a Workbooks object.
Parameters
Name | Required/Optional | Data type | Description |
---|---|---|---|
FileName | Optional | Variant | String. The file name of the workbook to be opened. |
UpdateLinks | Optional | Variant | 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. If this argument is omitted, the user is prompted to specify how links will be updated. For more information about the values used by this parameter, see the Remarks section. |
Return value
A Workbook object that represents the opened workbook.
Remarks
By default, macros are enabled when opening files programmatically. Use the AutomationSecurity property to set the macro security mode used when opening files programmatically.
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.
Value | Description |
---|---|
0 | External references (links) will not be updated when the workbook is opened. |
3 | External references (links) will be updated when the workbook is opened. |
You can specify one of the following values in the Format parameter to determine the delimiter character for the file.
Value | Delimiter |
---|---|
1 | Tabs |
2 | Commas |
3 | Spaces |
4 | Semicolons |
5 | Nothing |
6 | Custom character (see the Delimiter argument) |
Example
The following code example opens the workbook Analysis.xls and then runs its Auto_Open macro.
The following code example imports a sheet from another workbook onto a new sheet in the current workbook. Sheet1 in the current workbook must contain the path name of the workbook to import in cell D3, the file name in cell D4, and the worksheet name in cell D5. The imported worksheet is inserted after Sheet1 in the current workbook.
Support and feedback
Have questions or feedback about Office VBA or this documentation? Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.
11.4 Коллекция Workbooks и объект Workbook, их свойства и методы
Объект Excel.Workbook, программная работа с книгами Excel из VBA, создание и открытие книг Excel
Следующий по иерархии после Application объект в объектной модели Excel — это объект Workbook, который представляет книгу Excel. Можно сказать, что объект Workbook занимает в Excel примерно то же место, что и объект Document в Word — он нужен для получения ссылки на нужную нам книгу в наборе открытых книг Excel, а также для настройки общих свойств и выполнения общих действий со всеми листами книги. Получить этот объект можно очень просто:
- первый способ — воспользоваться коллекцией Workbooks, которая доступна через свойство Workbooks объекта Application. Впрочем, применять это свойство совершенно не обязательно — коллекция Workbooks в Excel и так постоянно доступна. Найти нужную книгу в этой коллекции можно по ее имени или номеру в коллекции:
- второй способ — использовать свойство Application.ActiveWorkbook. При помощи этого свойства мы обращаемся к активной в настоящей момент книге:
- третий способ — использовать свойство Application.ThisWorkbook. При этом мы обращаемся к той книге, которой принадлежит данный программный модуль:
На практике чаще всего нам нужно либо создать в Excel новую книгу, либо открыть существующую книгу (или другой файл в формате, который понимает Excel, например, DBF). Для этой цели используются методы Add() и Open() соответственно. Например, создать новую книгу в Excel можно так:
Dim oWbk As Workbook
Set oWbk = Workbooks.Add()
Единственный необязательный параметр, который принимает этот метод — имя шаблона, на основе которого создается новая рабочая книга.
Открытие существующей книги выглядит так:
Dim oWbk As Workbook
Set oWbk = WorkBooks.Open(“C:mybook1.xls”)
Помимо стандартных, в коллекции Workbooks предусмотрено также три специальных метода:
- OpenDatabase() — открыть базу данных, выполнить к ней запрос (или открыть таблицу/представление напрямую), а результаты запроса поместить как импортированные внешние данные в новую автоматически созданную рабочую книгу Excel;
- OpenText() — почти то же самое, но в качестве источника здесь выступает текстовый файл. Дополнительные параметры позволяют определять его формат.
- OpenXML() — в качестве источника данных будет выступать файл в формате XML.
Как и метод InsertDatabase() в Word, эти методы следует использовать только в самых простых случаях. Рекомендуется по возможности использовать более мощные и стандартные средства объектной модели ADO.
Теперь о самых важных свойствах объекта Workbook — самой рабочей книги:
- Name, CodeName, FullName — разные имена этой книги. Самое простое имя — Name, это имя совпадает с именем файла книги. FullName — это имя файла книги вместе с полным путем к нему в операционной системе. CodeName — как эта книга будет называться в коде. CodeName можно посмотреть в окне Project Explorer или, если открыть свойства книги в окне Properties, кодовое имя книги будет представлено в строке (Name). Все три свойства доступны только для чтения, менять их можно другими способами (например, сохраняя файл под другим именем или прямо в окне Properties).
Определенное отношение к именам имеет также свойство Path (путь к файлу книги) .
- Charts, Sheets, ActiveChart, ActiveSheet, CustomViews, BuiltinDocumentProperties и CustomDocumentProperties, Windows, WebOptions возвращают одноименные коллекции соответствующих объектов. Некоторые из этих объектов будут рассматриваться ниже.
- ConflictResolution — как будут разрешаться конфликты изменения данных, если книга открыта несколькими пользователями сразу (shared workbook). Есть возможность сделать так, чтобы локальный пользователь автоматически выигрывал, автоматически проигрывал или возникало диалоговое окно с возможностью разобраться в конфликте вручную. Существует большое количество свойств, которые позволяют настроить параметры совместной работы с книгой, но по причине того, что такая работа не рекомендуется (данные для совместного доступа необходимо переносить в базу данных), рассматриваться они здесь не будут, за исключением:
- запрещать/разрешать общий доступ к рабочей книге можно при помощи методов SaveAs() или ExclusiveAccess();
- по умолчанию возможность совместного редактирования для книги отключена (проверить можно при помощи свойства MultiUserEditing);
- получить список всех пользователей (а также когда они открыли файл и в каком режиме) можно при помощи свойства UserStatus.
For Each Item In ThisWorkbook.Names
Это свойство удобно использовать для предварительных проверок для устранения потенциальных ошибок времени выполнения.
Методов у объекта Workbook также очень много, однако значения самых употребимых — Activate(), Close(), Save(), SaveAs(), PrintOut(), Protect() и Unprotect() очевидны и действуют аналогично одноименным методам объекта Document в Word.
Excel vba открыть книгу
Здравствуйте
как макросом книги 1 открыть закрытую книгу 2 Excel .В идеале нужно поработать макросом в зарытой книге а у меня почему то макрос книги 1 не работает в закрытой книге 2)
пробовал прописать макрорекордером открытие книги – тоже не помогло ((((
Может кто нибудь в курсе можно ли так сделать ?
. очень нужна помощь .
Здравствуйте
как макросом книги 1 открыть закрытую книгу 2 Excel .В идеале нужно поработать макросом в зарытой книге а у меня почему то макрос книги 1 не работает в закрытой книге 2)
пробовал прописать макрорекордером открытие книги – тоже не помогло ((((
Может кто нибудь в курсе можно ли так сделать ?
. очень нужна помощь . ek09
В идеале нужно поработать макросом в зарытой книге а у меня почему то макрос книги 1 не работает в закрытой книге 2)
пробовал прописать макрорекордером открытие книги – тоже не помогло ((((
Может кто нибудь в курсе можно ли так сделать ?
. очень нужна помощь . Автор – ek09
Дата добавления – 05.06.2013 в 22:13У Вас слишком много знаков вопроса и скобок
А макрорекордер пишет открытие:
[vba]У Вас слишком много знаков вопроса и скобок
А макрорекордер пишет открытие:
[vba]У Вас слишком много знаков вопроса и скобок
Skype: andre.tm.007
Donate: Q iwi: 9517375010Сергей, ну в общем конечно “не притрагиваясь” к файлу в нём ничего изменить нельзя. Ну разве что если только изменив адресацию диска
И кстати только что проверил – работают оба варианта SQL/ADO. И добавляет, и обновляет.
Сергей, ну в общем конечно “не притрагиваясь” к файлу в нём ничего изменить нельзя. Ну разве что если только изменив адресацию диска
И кстати только что проверил – работают оба варианта SQL/ADO. И добавляет, и обновляет. Hugo
И кстати только что проверил – работают оба варианта SQL/ADO. И добавляет, и обновляет. Автор – Hugo
Дата добавления – 06.06.2013 в 09:58Как внести данные в книгу Excel, не открывая окно с книгой?
Как извлечь данные из Excel не открывая файл?
ВОПРОС Как извлечь данные из Excel не открывая файл? СЦЕНАРИЙ 1. В поле “ID” вводим.Как из Excel/Vba внести открытую книгу в SQL Server 7 как OLE объект?
Хотелось бы так: При нажатии соотв. кнопки. соединить с SQL Serverом и сохранить activesheet в SQL.Произвести манипуляции с данными в Excel, не открывая книгу по нескольку раз
здравствуйте, такая проблема: есть функция private void searchRegR(string strpat, int l) Окно проекта или нажмите клавиши Ctrl + R.В открывшейся в правой части окна модуля вставьте следующий код:
Вставьте код записанные в подпрограмме между строками Sub и End Sub.
Закройте Редактор Visual Basic (не нужно ничего сохранять).
Сохранение книги в виде книги Excel с поддержкой макросов (* xlsm) и закройте ее.
При открытии книги, код, добавленных на процедуры Workbook_Open будет выполняться автоматически.
Прежде чем начать, убедитесь, что отображаются вкладки ” Разработчик ” на ленте. Это можно сделать:
В меню выберите команду Excel > предпочтения. > ленты и панели инструментов.
В категории настроить ленту в списке Основные вкладки установите флажок Разработчик.
Чтобы использовать в приведенном ниже примере, откройте новую книгу.
Важно: Код VBA не может быть отменено, поэтому убедитесь, что для тестирования кода на пустую книгу или копию существующей книги. Если код не вас устраивают, закройте книгу без сохранения изменений.
Откройте вкладку Разработчик и щелкните элемент Visual Basic.
В левой части Проекта VBA разверните папку Проекта VBA для книги, а затем дважды щелкните модуль ЭтаКнига .
В открывшейся в правой части окна модуля вставьте следующий код:
Вставьте код записанные в подпрограмме между строками Sub и End Sub.
Закройте Редактор Visual Basic (не нужно ничего сохранять).
Сохранение книги в виде книги Excel с поддержкой макросов (* xlsm) и закройте ее.
При открытии книги, код, добавленных на процедуры Workbook_Open будет выполняться автоматически.
Дополнительные сведения
Вы всегда можете задать вопрос специалисту Excel Tech Community, попросить помощи в сообществе Answers community, а также предложить новую функцию или улучшение на веб-сайте Excel User Voice.
Канал в Telegram
Вы здесь
Определяем количество открытых книг, страниц и их имена. Конструкция For Each . Next
В статье “Иерархия(структура) рабочей книги Excel” была рассмотрена структура рабочей книги, листа и приложения в целом. Из этого возникает вопрос, каким образом можно получить, например кол-во страниц в книге Excel, или их имена. С количеством все просто, к примеру, для того чтобы получить кол-во открытых книг, достаточно воспользоваться следующей командой:
Application.Workbooks.CountЧтобы получить кол-во страниц в активной книге:
ActiveWorkbook.Worksheets.CountЕсли же требуется получить кол-во страниц в определенной книге для этого воспользуйтесь:
Workbooks(1).Worksheets.Count
или
Workbooks(“имя книги.xls”).Worksheets.CountВ первом случае обращение к нужной книге происходит по индексу. Индекс присваивается в порядке открытия книг. Этот вариант не совсем удобен если необходимо обратится к конкретной книге т.к. книги могут открываться в разном порядке. Поэтому второй вариант команды позволяет обратиться к книге по ее полному имени.
Теперь перейдем к рассмотрению работы с конструкцией For Each . Next.
Синтаксис конструкции For Each . Next
For Each Элемент In Коллекция(Группа)
[команды][Exit For]
[команды]Next [Элемент]Данная конструкция позволяет поочередно обратится к каждому элементу группы или коллекции. Коллекция это группа одинаковых (однотипных) объектов. Например, массивы, или коллекции WorkBooks, Worksheets .
For Each . Next по принципу работы похож на цикл For. Next, который был рассмотрен здесь. Схожесть в том что, перебирается каждый элемент коллекции или группы по порядку. Не буду томить скучной теорией перейдем к рассмотрению примеров.Пример 1. Необходимо получить имена всех открытых книг Excel. Имена всех рабочих книг доступны в коллекции Workbooks.
Sub GetWorkBooksName()
Dim WBooks As Workbook
Dim Msg As StringFor Each WBooks In Workbooks
Msg = Msg & WBooks.Name & Chr(13)
Next WBooksMsgBox Msg
End SubПример 2. Необходимо получить имена всех страниц в активной книге. Имена страниц содержатся в коллекции Worksheets.
Sub GetWorkSheetsName()
Dim Item As WorksheetFor Each Item In ActiveWorkbook.Worksheets
MsgBox “Отображаемое имя листа ” & CStr(Item.Index) & ” – ” & Item.Name
Next ItemПример 3. Необходимо посчитать кол-во страниц во всех открытых книгах Excel.
Sub GetAllCountSheets()
Dim WBooks As Workbook
Dim kolSheet As Long
Dim Msg As StringkolSheet = 0
For Each WBooks In Workbooks
kolSheet = kolSheet + Workbooks(WBooks.Name).Worksheets.Count
Next WBooksMsgBox “Всего страниц в открытых книгах: ” & CStr(kolSheet)
Пример 4. Необходимо преобразовать весь текст в выделенном диапазоне ячеек в верхний регистр т.е. сделаем буквы большими. Для этого воспользуемся коллекцией Selection (тип Range – хранит область выделенных ячеек) и функцией перевода символов в верхний регистр UCase (если необходим перевод в нижний регистр, то воспользуйтесь функцией LCase).
Sub RangeUpCase()
Dim Cell As RangeFor Each Cell In Selection
Cell.Value = UCase(Cell.Value)
Next CellВыделяем нужные ячейки или диапазон ячеек с текстом и запускаем макрос.
Пример 5. И заключительный пример, закроем все рабочие книги Excel, кроме активной, без сохранения.
Sub CloseBooks()
Dim WBook As WorkbookFor Each WBook In Workbooks
If WBook.Name <> ActiveWorkbook.Name Then WBook.Close False
Next WBookЗа закрытие книги Excel отвечает команда WBook.Close. Параметр False указывает, что закрываем все книги без сохранения. Если этот параметр изменить на True, то все книги будут закрываться предварительно сохранившись. Если же этот параметр убрать, то при закрытии книг с внесенными изменениями выскочит диалоговое окно с вопросом о сохранении.
Все примеры, рассмотренные в статье, Вы можете скачать ниже. Все.
Excel works!
Excel работает за вас
Excel works!
Thanks for Visiting
Как найти только что закрытый файл? Как быстро найти и открыть книгу Excel в т.ч. в VBA?
Многим знакома ситуация, когда вы недавно сохранили книгу и не помните? куда именно. Мне часто помогает возможность просмотра последних открытых книг Excel, для поиска только что сохраненных файлов. В этой статье мы поговорим о способах открыть книгу Excel, в т.ч. при помощи горячей клавиши и даже о соответствующих функциях VBA.
Что файл Excel открывается двойным щелчком по нему, я рассказывать не буду, мы поговорим о более сложных способах вызова книги Excel.
Как найти и открыть книгу из самой программы? Горячая клавиша
Зачастую пользователи не знают, что открыть книгу можно и не сворачивая Excel. Перейдите в меню файл (круглая кнопка в левом верхнем углу) — нажмите Открыть и выберите необходимую папку:
Так же работает горячая клавиша Ctrl+O .
Как найти и открыть недавно закрытую книгу Excel?
Если вы забыли куда сохранили только что созданную книгу (у меня так бывает), то найти ее не будет проблемой. Открыть последние используемые файлы можно через панель Последние документы. Опять же откройте меню файл (для версий 2007 и выше) и вы сразу увидите последние используемые вами файлы Excel.
Видите гвоздики справа? Вы можете закрепить какой-то файл при помощи них, и он всегда будет доступен здесь. Удобно, когда вы часто пользуетесь одним и тем же файлом. Просто кликните по гвоздику, и файл закрепится.
При открытии любой книги Excel в разделе Последние документы будет висеть закрепленный таким образом файл.
Список последних файлов будет меняться в зависимости от того, с какими файлами вы работаете. Список файлов состоит 25 элементов, но если зайти «Файл»-«Параметры»-«Дополнительно»-«Экран»-«Число документов в списке последних файлов:», то можно установить свое значение до 50 файлов.
В версиях программы 2013 и выше последние файлы доступны в меню кнопки открыть.
Как открыть уже открытые файлы?
Если у вас множество файлов, то иногда проще их найти при помощи инструментом закладка «Вид» раздел «Окно» инструмент «Перейти в другое окно».
Функция Перейти в другое окно в версии Excel 2016
Как открыть несколько книг рядом?
Если вам необходимо открыть несколько книг или окон рядом, то это тоже несложно. Возможность редактора подробно описана здесь .
Как закрыть или открыть книгу Excel через VBA?
Если у вас больше 15 файлов, которые надо регулярно открывать один за одним, то удобно будет записать макрос для открытия этих книг. Как записать макрос, читайте в отдельной статье .
Вам необходимы отдельные функции для открытия или закрытия Excel через VBA? Например, вам нужно, чтобы файл закрывался после окончания выполнения макроса, используйте такие команды:
Где C:primer.xlsx путь к файлу
Где ClsBK — переменная, которой присваиваем имя открытой книги, а потом закрываем.
Читайте также: