Страницы: 1
RSS
Маска файлов
 
Помогите разобраться: есть код, позволяющий открывать нужную книгу и копировать оттуда содержимое.
Код
Function GetFolderPath(Optional ByVal Title As String = "Выберите папку", _
                       Optional ByVal InitialPath As String = "c:\") As String
    ' функция выводит диалоговое окно выбора папки с заголовком Title,
    ' начиная обзор диска с папки InitialPath
    ' возвращает полный путь к выбранной папке, или пустую строку в случае отказа от выбора
    Dim PS As String: PS = Application.PathSeparator
    With Application.FileDialog(msoFileDialogFolderPicker)
        If Not Right$(InitialPath, 1) = PS Then InitialPath = InitialPath & PS
        .ButtonName = "Выбрать": .Title = Title: .InitialFileName = InitialPath
        If .Show <> -1 Then Exit Function
        GetFolderPath = .SelectedItems(1)
        If Not Right$(GetFolderPath, 1) = PS Then GetFolderPath = GetFolderPath & PS
    End With
End Function
Sub start()
ПутьКПапке = GetFolderPath("Заголовок окна", ThisWorkbook.Path)
If ПутьКПапке = "" Then Exit Sub
MsgBox "Выбрана папка: " & ПутьКПапке, vbInformation
Sheets("Заявки").Visible = True
Sheets("Системный").Visible = True
Workbooks.Open ПутьКПапке & "хранение" & ".xls"
Application.ScreenUpdating = False
Workbooks("хранение.xls").Worksheets("$$$29106").Range("A1:FZ200").Copy
Workbooks("Журнал прихода-расхода.xlsm").Activate
Sheets("Заявки").Activate
ActiveWorkbook.Worksheets("Заявки").Range("A1").Select
ActiveSheet.Paste
Не могу разобраться вот с чем: для копирования нужно открыть книгу Хранение.xls. Но иногда в название файла добавляются дополнительные символы, вроде Хранение за 20.05.xls. Как сделать, чтобы и они открывались? Добавлял звездочку в код, но Excel воспринимает ее как часть названия.
Код
Workbooks.Open ПутьКПапке & "хранение*" & ".xls*"
 
Код
' получаем имя файла по маске
filename$ = dir(ПутьКПапке & "хранение*" & ".xls*", vbNormal)
if filename$="" then msgbox "файл не найден": exit sub

' открываем найденный файл
set WB = Workbooks.Open (ПутьКПапке & filename$)
' WB - ссылка на открытую книгу
' копируем и вставляем одной строкой кода
WB.Worksheets("$$$29106").Range("A1:FZ200").Copy Workbooks("Журнал прихода-расхода.xlsm").Sheets("Заявки").Range("A1") 

 
Игорь, огромное спасибо!
Помогите, пожалуйста, с остальной частью кода, ибо она перестала работать =)
Все содержимое кода относится к книге Журнал прихода-расхода.xlsm.
Код
Sheets("Системный").Select
Range(Cells(22, 2), Cells(Cells(1, 9), 2)).Copy
Sheets("Таблица").Select
Range(Cells(4, Sheets("Системный").Cells(2, 7)), Cells(Sheets("Системный").Cells(2, 8), Sheets("Системный").Cells(2, 7))).PasteSpecial xlPasteValues

Workbooks("хранение.xls").Close
Изменено: Kamol - 24.05.2016 09:21:02
 
Игорь, разобрался!
Еще раз спасибо!
Страницы: 1
Читают тему
Наверх