Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Вызов диалогового окна для открытия файла *.txt - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Вызов диалогового окна для открытия файла *.txt (Макросы/Sub)
Вызов диалогового окна для открытия файла *.txt
A_3485 Дата: Пятница, 21.11.2014, 09:19 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 146
Репутация: 0 ±
Замечаний: 40% ±

2007
Уважаемые формучане, добрый день!
Помогите пожалуйста разобраться с макросом, который вызывает диалоговое окно для выбора файла TXT. На сайте excelvba.ru/category/text, я нашел макрос, который выполняет такие операции и решил попробовал его в деле. В итого получается, что путь к указанному файлу выбирается, а после нажатия кнопки "Открыть" ничего не происходит. Сам файл в формате txt можно открыть, если в диалоговом окне правой клавишей мыши выбрать "Открыть". Вот код функции:

[vba]
Код
Function Открытие_TXT(Optional ByVal Destination As Variant, _
                    Optional ByVal Title$ = "Выберите файл для обработки", _
                    Optional ByVal InitialPath$ = "", _
                    Optional ByVal FilterDescription$ = "Текстовые файлы")
        

     On Error Resume Next
     If InitialPath = "" Then InitialPath = "С:\Папка\d.txt" 'ActiveWorkbook.Path
     With Application.FileDialog(msoFileDialogOpen)    ' диалоговое окно для выбора txt файла
         .ButtonName = "Выбрать": .Title = Title: .InitialFileName = InitialPath
         .Filters.Clear: .Filters.Add FilterDescription, FilterExtention
         If .Show <> -1 Then Exit Function       
     End With
      
End Function
[/vba]
 
Ответить
СообщениеУважаемые формучане, добрый день!
Помогите пожалуйста разобраться с макросом, который вызывает диалоговое окно для выбора файла TXT. На сайте excelvba.ru/category/text, я нашел макрос, который выполняет такие операции и решил попробовал его в деле. В итого получается, что путь к указанному файлу выбирается, а после нажатия кнопки "Открыть" ничего не происходит. Сам файл в формате txt можно открыть, если в диалоговом окне правой клавишей мыши выбрать "Открыть". Вот код функции:

[vba]
Код
Function Открытие_TXT(Optional ByVal Destination As Variant, _
                    Optional ByVal Title$ = "Выберите файл для обработки", _
                    Optional ByVal InitialPath$ = "", _
                    Optional ByVal FilterDescription$ = "Текстовые файлы")
        

     On Error Resume Next
     If InitialPath = "" Then InitialPath = "С:\Папка\d.txt" 'ActiveWorkbook.Path
     With Application.FileDialog(msoFileDialogOpen)    ' диалоговое окно для выбора txt файла
         .ButtonName = "Выбрать": .Title = Title: .InitialFileName = InitialPath
         .Filters.Clear: .Filters.Add FilterDescription, FilterExtention
         If .Show <> -1 Then Exit Function       
     End With
      
End Function
[/vba]

Автор - A_3485
Дата добавления - 21.11.2014 в 09:19
Саня Дата: Пятница, 21.11.2014, 09:34 | Сообщение № 2
Группа: Друзья
Ранг: Ветеран
Сообщений: 1068
Репутация: 560 ±
Замечаний: 0% ±

XL 2016
В итого получается, что путь к указанному файлу выбирается


замечательно, значит просто подашь этот путь в процедуру OpenFile

[vba]
Код
Option Explicit
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" ( _
                     ByVal Hwnd As Long, _
                     ByVal lpOperation As String, _
                     ByVal lpFile As String, _
                     ByVal lpParameters As String, _
                     ByVal lpDirectory As String, _
                     ByVal nShowCmd As Long) As Long
Private Const SW_SHOWNORMAL = 1

Sub OpenFile(sFullPath As String)
      ShellExecute 0&, "Open", sFullPath, _
                   vbNullString, vbNullString, SW_SHOWNORMAL
End Sub

Sub OpenTxt()
      OpenFile "С:\Папка\d.txt"
End Sub
[/vba]
 
Ответить
Сообщение
В итого получается, что путь к указанному файлу выбирается


замечательно, значит просто подашь этот путь в процедуру OpenFile

[vba]
Код
Option Explicit
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" ( _
                     ByVal Hwnd As Long, _
                     ByVal lpOperation As String, _
                     ByVal lpFile As String, _
                     ByVal lpParameters As String, _
                     ByVal lpDirectory As String, _
                     ByVal nShowCmd As Long) As Long
Private Const SW_SHOWNORMAL = 1

Sub OpenFile(sFullPath As String)
      ShellExecute 0&, "Open", sFullPath, _
                   vbNullString, vbNullString, SW_SHOWNORMAL
End Sub

Sub OpenTxt()
      OpenFile "С:\Папка\d.txt"
End Sub
[/vba]

Автор - Саня
Дата добавления - 21.11.2014 в 09:34
A_3485 Дата: Пятница, 21.11.2014, 10:25 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 146
Репутация: 0 ±
Замечаний: 40% ±

2007
Спасибо, помогло. Только я не совсем понял как отработал ваш код. Можно более подробнее пояснить, как работает ваш код.
 
Ответить
СообщениеСпасибо, помогло. Только я не совсем понял как отработал ваш код. Можно более подробнее пояснить, как работает ваш код.

Автор - A_3485
Дата добавления - 21.11.2014 в 10:25
Саня Дата: Пятница, 21.11.2014, 11:47 | Сообщение № 4
Группа: Друзья
Ранг: Ветеран
Сообщений: 1068
Репутация: 560 ±
Замечаний: 0% ±

XL 2016
Можно более подробнее пояснить, как работает ваш код.


 
Ответить
Сообщение
Можно более подробнее пояснить, как работает ваш код.



Автор - Саня
Дата добавления - 21.11.2014 в 11:47
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Вызов диалогового окна для открытия файла *.txt (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!