Vba excel открыть файл excel в той же папке

 

Ukurov

Пользователь

Сообщений: 11
Регистрация: 24.02.2014

#1

19.08.2015 10:54:58

Добрый день!
Есть макрос, который открывает файлы находящиеся по определенному адресу, выглядит это так:
WorkBooks.Open Filename:=»C:ЭкономикаБПфайл.xlsx»
Как сделать так, чтобы при перемещении папки «БП» или изменении имени папки макрос всё равно открывал файлы, находящиеся в этой папке (т.е. открывал файлы в текущей папке)?

To open a workbook using VBA, you need to use the “Workbook.Open” method and specify the path of the file (make sure to specify the full path to the workbook with name and extension file type). This method has a total of fifteen optional arguments which you can use to deal with different kinds of files.

In this tutorial, we will explore it in detail and look at an alternative method that you can use.

Steps to Open a Workbook using VBA

  1. To start the code, use the “Workbooks” object.
  2. Type a dot (.) after that and select the Open method from the list.
  3. Specify the file path in the first argument and make sure to enclose it in double quotation marks.
  4. In the end, run the code to open the workbook.
Sub vba_open_workbook()
Workbooks.Open "C:UsersDellDesktopmyFile.xlsx"
End Sub

Helpful Links: Run a Macro – Macro Recorder – Visual Basic Editor – Personal Macro Workbook

Workbook.Open Syntax

Now it’s time to look at the syntax of the method that you just have used in the above example. As I mentioned, there are fifteen arguments that you can use:

expression.Open (FileName, UpdateLinks, _
ReadOnly, Format, Password, WriteResPassword, IgnoreReadOnlyRecommended, Origin, _
Delimiter, Editable, Notify, Converter, AddToMru, Local, CorruptLoad)

You won’t be using all these arguments. But a few of them are quite important and could be useful for you in the real world.

Opening a Password Protected Workbook

If you want to open a workbook that is password-protected, in that case, you can specify the password with the password argument.

Here I have a workbook on the desktop that has the password “test123” and now I want to open it and unprotect it at the same time. Following is the code that I need to use.

Workbooks.Open "C:UsersDellDesktopmyFile.xlsx", , , Password:="test123"

Opening a Workbook as Read Only

When you open a workbook as read-only you can’t make changes to the same workbook, but you need to save a copy of it.

Workbooks.Open "C:UsersDellDesktopFolder1.xlsx", , True

Open All the Workbooks from a Folder

Sub vba_open_multiple_workbooks_folder()
    Dim wb As Workbook
    Dim strFolder As String
    Dim strFile As String
        strFolder = "C:UsersDellDesktopFolder"
        strFile = Dir(strFolder & "*.xls*")
        Do While strFile <> ""
            Set wb = Workbooks.Open(strFolder & strFile)
            strFile = Dir
        Loop
End Sub

To use it as per your needs, make sure to change the folder path.

Sub vba_open_dialog()
    Dim strFile As String
    strFile = Application.GetOpenFilename()
    Workbooks.Open (strFile)
End Sub

More on VBA Workbooks

VBA Save Workbook | VBA Close Workbook | VBA Delete Workbook | VBA ThisWorkbook | VBA Rename Workbook | VBA Activate Workbook | VBA Combine Workbook | VBA Protect Workbook (Unprotect) | VBA Check IF a Workbook is Open | VBA Check IF an Excel Workbook Exists in a Folder| VBA Create New Workbook (Excel File)

  • VBA Workbook

Как с помощью макроса открыть файл находящийся в этой же папке?
Объясню на примере.
Имеем: Книга1(с нашим макросом), Книга2(его надо открыть).
Оба файла лежат в папке «D:temp».
Если папка постоянна то открывается все очень просто:

Workbooks.Open Filename:="D:tempКнига2.xlsx"
Но, если поменять путь например «D:1temp» то файл уже не откроется.
Вопрос: Как открыть файл когда путь меняется при условии, что знаем имя файла (Книга2) и они лежат в одной и той же папке?

P.S. Если знаете функцию которая вернет путь к первоначальному(тоесть открытому) файлу то подскажите, это тоже решит проблему. Например:


put={функция ворачивающая путь к файлу}
Workbooks.Open Filename:=put & "D:tempКнига2.xlsx"

Заранее при много благодарен.


Workbooks.Open ThisWorkbook.Path & "Книга2.xlsx"

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы…
www.excel-vba.ru
Просто СПАСИБО [+оказать+]
Считаешь СПАСИБО мало? Яндекс.Деньги: 41001332272872; WM: R298726502453


put={функция ворачивающая путь к файлу}

put = ThisWorkbook.Path
put = ActiveWorkbook.Path
putExcel = Application.Path
•  В первом примере указан путь к файлу, где содержится сама программа, которая в настоящий момент выполняет код VBA.
•  Во втором примере указан путь к активному файлу.
•  В третьем примере указан путь к папке, в которой установлен MS Excel. При наличии у Вас нескольких версий, укажет путь к версии, в которой Вы работаете в данный момент.

Может и я на что сгожусь … Если сгодился, можете меня по+благодарить+.


koliash

0 / 0 / 0

Регистрация: 21.05.2011

Сообщений: 10

1

Открытие файла в той же папке что и книга

22.05.2011, 20:07. Показов 7735. Ответов 1

Метки нет (Все метки)


Студворк — интернет-сервис помощи студентам

Visual Basic
1
2
3
Workbooks.OpenText Filename:='D:Lumexsplumprosecv_tab.txt', Origin:=866 _
        , StartRow:=1, DataType:=xlFixedWidth, FieldInfo:=Array(Array(0, 1), Array( _
        14, 1), Array(21, 1), Array(28, 1)), TrailingMinusNumbers:=True

Работает, если вместо полного пути с именем задаю просто имя файла — выдаёт ошибку хотя файл в той же папке.

Visual Basic
1
2
3
Workbooks.OpenText Filename:='secv_tab.txt', Origin:=866 _
        , StartRow:=1, DataType:=xlFixedWidth, FieldInfo:=Array(Array(0, 1), Array( _
        14, 1), Array(21, 1), Array(28, 1)), TrailingMinusNumbers:=True

Как с этим боротся?



0



Programming

Эксперт

94731 / 64177 / 26122

Регистрация: 12.04.2006

Сообщений: 116,782

22.05.2011, 20:07

1

Открытие книги Excel из кода VBA. Проверка существования книги. Создание новой книги, обращение к открытой книге и ее закрытие. Методы Open, Add и Close.

Открытие существующей книги

Существующая книга открывается из кода VBA Excel с помощью метода Open:

Workbooks.Open Filename:=«D:test1.xls»

или

Workbooks.Open («D:test1.xls»)

В кавычках указывается полный путь к открываемому файлу Excel. Если такой файл не существует, произойдет ошибка.

Проверка существования файла

Проверить существование файла можно с помощью функции Dir. Проверка существования книги Excel:

If Dir(«D:test1.xls») = «» Then

    MsgBox «Файл не существует»

Else

    MsgBox «Файл существует»

End If

Или, если файл (книга Excel) существует, можно сразу его открыть:

If Dir(«D:test1.xls») = «» Then

    MsgBox «Файл не существует»

Else

    Workbooks.Open Filename:=«D:test1.xls»

End If

Создание новой книги

Новая рабочая книга Excel создается в VBA с помощью метода Add:

Созданную книгу, если она не будет использоваться как временная, лучше сразу сохранить:

Workbooks.Add

ActiveWorkbook.SaveAs Filename:=«D:test2.xls»

В кавычках указывается полный путь сохраняемого файла Excel, включая присваиваемое имя, в примере — это «test2.xls».

Обращение к открытой книге

Обращение к активной книге:

Обращение к книге с выполняемым кодом:

Обращение к книге по имени:

Workbooks(«test1.xls»)

Workbooks(«test2.xls»)

Обратиться по имени можно только к уже открытой книге, а чтобы из кода VBA Excel книгу открыть, необходимо указать полный путь к файлу.

Открытая рабочая книга закрывается из кода VBA Excel с помощью метода Close:

Workbooks(«test1.xlsx»).Close

Если закрываемая книга редактировалась, а внесенные изменения не были сохранены, тогда при ее закрытии Excel отобразит диалоговое окно с вопросом: Вы хотите сохранить изменения в файле test1.xlsx? Чтобы файл был закрыт без сохранения изменений и вывода диалогового окна, можно воспользоваться параметром метода Close — SaveChanges:

Workbooks(«test1.xlsx»).Close  SaveChanges:=False

или

Workbooks(«test1.xlsx»).Close  (False)

Закрыть книгу Excel из кода VBA с сохранением внесенных изменений можно также с помощью параметра SaveChanges:

Workbooks(«test1.xlsx»).Close  SaveChanges:=True

или

Workbooks(«test1.xlsx»).Close (True)


Фразы для контекстного поиска: открыть книгу, открытие книги, создать книгу, создание книги, закрыть книгу, закрытие книги, открыть файл Excel, открытие файла Excel, существование книги, обратиться к открытой книге.


Понравилась статья? Поделить с друзьями:
  • Vba excel открыть проводник
  • Vba excel открыть приложение
  • Vba excel открыть папку с файлами
  • Vba excel открыть объект
  • Vba excel определить текущую ячейку