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

Вход

Регистрация

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

 

= Мир MS Excel/Открытие определенных файлов word - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Открытие определенных файлов word
Leprotto Дата: Вторник, 08.08.2017, 15:38 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 145
Репутация: 2 ±
Замечаний: 0% ±

Excel 2016
Всем привет!
Есть код, который поочередно открывает файлы word в выбранной папке и ищет значение закладках:


Проблема 1: если в поисковой папке затесался файл эксель и т.д., то выдает ошибку.
Проблема 2: если в папке много файлов word, то они долго перебираются. А по логике моей задачи 90%,
что в искомой папке есть нужный файл и я знаю его вероятное наименование.
Обращаться к файлу с конкретным именем не вариант, т.к. в названии может быть любой лишний знак.
Можно ли сначала перебирать файлы, содержащие "корень" в названии, а при неудаче перебирать все файлы,
но только word, игнорируя другие?
Пример приложил.
К сообщению приложен файл: OpenOnlyWord.rar (62.1 Kb)


Сообщение отредактировал Leprotto - Вторник, 08.08.2017, 15:39
 
Ответить
СообщениеВсем привет!
Есть код, который поочередно открывает файлы word в выбранной папке и ищет значение закладках:


Проблема 1: если в поисковой папке затесался файл эксель и т.д., то выдает ошибку.
Проблема 2: если в папке много файлов word, то они долго перебираются. А по логике моей задачи 90%,
что в искомой папке есть нужный файл и я знаю его вероятное наименование.
Обращаться к файлу с конкретным именем не вариант, т.к. в названии может быть любой лишний знак.
Можно ли сначала перебирать файлы, содержащие "корень" в названии, а при неудаче перебирать все файлы,
но только word, игнорируя другие?
Пример приложил.

Автор - Leprotto
Дата добавления - 08.08.2017 в 15:38
_Boroda_ Дата: Вторник, 08.08.2017, 16:04 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 16713
Репутация: 6503 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
Посмотрите про функцию Dir
https://msdn.microsoft.com/ru-ru/library/dk008ty4(v=vs.90).aspx


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеПосмотрите про функцию Dir
https://msdn.microsoft.com/ru-ru/library/dk008ty4(v=vs.90).aspx

Автор - _Boroda_
Дата добавления - 08.08.2017 в 16:04
Leprotto Дата: Вторник, 08.08.2017, 17:04 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 145
Репутация: 2 ±
Замечаний: 0% ±

Excel 2016
_Boroda_, посмотрел, но ума не хватает прикрутить к коду ((
 
Ответить
Сообщение_Boroda_, посмотрел, но ума не хватает прикрутить к коду ((

Автор - Leprotto
Дата добавления - 08.08.2017 в 17:04
_Boroda_ Дата: Вторник, 08.08.2017, 17:32 | Сообщение № 4
Группа: Админы
Ранг: Местный житель
Сообщений: 16713
Репутация: 6503 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
Хе, так у Вас же там уже почти все написано уже. Как-то так примерно. Что куда вставлять нужно - не разбирался, просто кусок для Дира переписал
[vba]
Код
Sub OpenOnlyWord()
    Dim FSO As Object
    Dim SourceFolder As Object
    Dim FileItem '============
    Dim objWord As Object
    Dim wrdDoc As Object
    Dim myRange As Object
    Dim flag As Boolean
    Dim sFolder As String, sFile As String
    Set FSO = CreateObject("Scripting.FileSystemObject")
    With Application.FileDialog(msoFileDialogFolderPicker)
        If .Show = False Then Exit Sub
        sFolder = .SelectedItems(1)
    End With
    sFolder = sFolder & IIf(Right(sFolder, 1) = Application.PathSeparator, "", Application.PathSeparator)
    Set SourceFolder = FSO.getfolder(sFolder)
    Set objWord = CreateObject("Word.Application")
    flag = False
    sFile = ThisWorkbook.Sheets(1).Range("E2").Value 'например "У-222"
    FileItem = Dir(sFolder & "*" & sFile & "*.doc*")
    Do While FileItem <> ""
        Set wrdDoc = objWord.Documents.Open(sFolder & FileItem, , True)
        ThisWorkbook.Sheets(1).Range("B2") = wrdDoc.Bookmarks("код").Range.Text
        wrdDoc.Close
        FileItem = Dir()
    Loop
      MsgBox "код НЕ найден"
      
letQuit:
    objWord.Quit
    Set wrdDoc = Nothing: Set objWord = Nothing: Set SourceFolder = Nothing: Set FSO = Nothing
End Sub
[/vba]


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеХе, так у Вас же там уже почти все написано уже. Как-то так примерно. Что куда вставлять нужно - не разбирался, просто кусок для Дира переписал
[vba]
Код
Sub OpenOnlyWord()
    Dim FSO As Object
    Dim SourceFolder As Object
    Dim FileItem '============
    Dim objWord As Object
    Dim wrdDoc As Object
    Dim myRange As Object
    Dim flag As Boolean
    Dim sFolder As String, sFile As String
    Set FSO = CreateObject("Scripting.FileSystemObject")
    With Application.FileDialog(msoFileDialogFolderPicker)
        If .Show = False Then Exit Sub
        sFolder = .SelectedItems(1)
    End With
    sFolder = sFolder & IIf(Right(sFolder, 1) = Application.PathSeparator, "", Application.PathSeparator)
    Set SourceFolder = FSO.getfolder(sFolder)
    Set objWord = CreateObject("Word.Application")
    flag = False
    sFile = ThisWorkbook.Sheets(1).Range("E2").Value 'например "У-222"
    FileItem = Dir(sFolder & "*" & sFile & "*.doc*")
    Do While FileItem <> ""
        Set wrdDoc = objWord.Documents.Open(sFolder & FileItem, , True)
        ThisWorkbook.Sheets(1).Range("B2") = wrdDoc.Bookmarks("код").Range.Text
        wrdDoc.Close
        FileItem = Dir()
    Loop
      MsgBox "код НЕ найден"
      
letQuit:
    objWord.Quit
    Set wrdDoc = Nothing: Set objWord = Nothing: Set SourceFolder = Nothing: Set FSO = Nothing
End Sub
[/vba]

Автор - _Boroda_
Дата добавления - 08.08.2017 в 17:32
Leprotto Дата: Вторник, 08.08.2017, 17:57 | Сообщение № 5
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 145
Репутация: 2 ±
Замечаний: 0% ±

Excel 2016
_Boroda_,
Цитата
Хе, так у Вас же там уже почти все написано уже.

почти... ))
Спасибо, заработало как нужно!
 
Ответить
Сообщение_Boroda_,
Цитата
Хе, так у Вас же там уже почти все написано уже.

почти... ))
Спасибо, заработало как нужно!

Автор - Leprotto
Дата добавления - 08.08.2017 в 17:57
  • Страница 1 из 1
  • 1
Поиск:

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