Страницы: 1
RSS
Макрос выбора файла через диалоговое окно - как сделать файл активным
 
Добрый день.
Мне надо открыть файл через диалоговое окно и сделать этот файл активным, чтобы выполнить дальнейшую обработку.
Вот код макроса, который запускает окно выбора файла, и открывает файл.
Однако при этом открытый файл не становиться активным, и дальше макрос не работает.
Как я понимаю, надо где-то сохранить имя открытого файла, и затем через Workbooks.Open Filename:= надо или открыть конкретный файл, или указать ячейку на листе, куда заносится имя открытого файла.
Так как имена файлов, которые будут открываться, постоянно меняются, то надо универсальное решение.
Заранее большое спасибо всем за помощь!


Код
Sub open_price()
    Dim OP As FileDialog
    Dim x, lf As Long
       Set OP = Application.FileDialog(msoFileDialogOpen)
    With OP
        .AllowMultiSelect = False
        .Title = "Выбрать файл прайса АЗБУКА"
        .Filters.Clear
        .InitialFileName = ""
        If OP.Show = 0 Then Exit Sub
        For lf = 1 To .SelectedItems.Count
            x = .SelectedItems(lf)
            Workbooks.Open Filename:=x

            
        Next
    End With
    End Sub
 
пропишите дополнительно следующие две строчки в Вашем коде:
Код
x = Dir(x, vbNormal)
Workbooks(x).Activate
 
Спасибо большое!
Все работает.

Цитата
Владимир Баукин написал: пропишите... две строчки: 12x = Dir(x, vbNormal)    Workbooks(x).Activate
И еще вопрос, пока макрос работает, х — это имя открытого файла? И пока работает макрос, к открытому файлу можно обращаться по имени Х? Расширение не обязательно?
 
Цитата
karlson7 написал: Все работает.
получение правильного результата, не означает правильность кода
Код
Set WB=Workbooks.Open Filename:=x
WB.Activate

Это решит и второй вопрос, так как к книге можно обращаться по WB
Изменено: БМВ - 09.05.2021 22:08:38
По вопросам из тем форума, личку не читаю.
 
Цитата
БМВ написал:
получение правильного результата, не означает правильность кода
Понятно, спасибо
 
Цитата
karlson7 написал:
х — это имя открытого файла?
Да, пока макрос работает, эта переменная обозначает конкретное имя файла загруженной в приложение книги.
 
Ясно, спасибо
 
Цитата
БМВ написал:
Set WB=Workbooks.Open Filename:=x
Когда я добавляю эту строчку в код, то получаю сообщение "Syntax error"
 
А меня вот интересует, как можно открыть книгу методом Workbooks.Open, и не сделать ее активной?
 
Код
  Set WB = Workbooks.Open(Filename:=x)
Владимир
 
Спасибо, работает
Страницы: 1
Наверх