Выбираю файлы из диалогового окна, затем нужно будет работать с именем файла, чтобы по определенным условиям выбрать нужные файлы. Не могу придумать как сделать чтобы в if получить имя файла, чтобы, например, проверить на наличие "01.01.2020" в имени файла
Код
Sub CombineWorkbooks()
Dim FilesToOpen
Dim x As Integer
Dim lLastRow As Long
lLastRow = Cells(Rows.Count, 1).End(xlUp).Row
MsgBox (lLastRow - 1)
'вызываем диалог выбора файлов для импорта
FilesToOpen = Application.GetOpenFilename _
(FileFilter:="All files (*.*), *.*", _
MultiSelect:=True, Title:="Files to Merge")
If TypeName(FilesToOpen) = "Boolean" Then
MsgBox "Не выбрано ни одного файла!"
Exit Sub
End If
'проходим по всем выбранным файлам
x = 1
While x <= UBound(FilesToOpen)
вот здесь должен быть if с отбором файлов по имени файла
Set importWB = Workbooks.Open(Filename:=FilesToOpen(x))
x = x + 1
Wend
End Sub
Sub CombineWorkbooks()
Dim FilesToOpen As Variant
Dim i As Integer
Dim importWB As Workbook
'вызываем диалог выбора файлов для импорта
FilesToOpen = Application.GetOpenFilename _
(FileFilter:="All files (*.*), *.*", _
MultiSelect:=True, Title:="Files to Merge")
If TypeName(FilesToOpen) = "Boolean" Then
MsgBox "Не выбрано ни одного файла!"
Exit Sub
End If
'проходим по всем выбранным файлам
For i = 1 To UBound(FilesToOpen)
Set importWB = GetObject(FilesToOpen(i))
If importWB.Name Like "*01.01.2020*" Then
importWB.Windows(1).Visible = True
Else
importWB.Close False
End If
Next
End Sub
Наша суть отражается в наших повторяющихся действиях. Отсюда следует, что совершенство есть не действие, а привычка. Аристотель.
Sub CombineWorkbooks()
Dim i As Integer
Dim wbName As String
'вызываем диалог выбора файлов для импорта
With Application.FileDialog(msoFileDialogOpen)
.AllowMultiSelect = True
.Show
For i = 1 To .SelectedItems.Count
wbName = Right(.SelectedItems(i), Len(.SelectedItems(i)) - Len(.InitialFileName))
If LCase(wbName) Like "*01.01.2020*" Then
Workbooks.Open (.SelectedItems(i))
End If
Next
End With
End Sub