Страницы: 1
RSS
Макрос для копирования выбранных столбцов из нескольких файлов в новую книгу
 
Добрый день!
Добрые люди с форума помогли написать макрос который выполняет следующие функции
В открытом файле он находит название столбцов которые указаны в первой строке по перечню, копирует эти столбцы, создает новый файл вставляет туда скопированные столбцы и сохраняет новый файл в определенную папку. Теперь я придумал алгоритм который поможет еще более упростить задачу, но мне нужна помощь в его реализации.
Алгоритм:
В коде прописывается путь к папке или к названию файла
Путь выглядит так к папке - \\server6.tns\dzo\\56\2018\56



Код имеет такой вид:
Код
Sub Test()

Application.ScreenUpdating = False
Application.EnableEvents = False
Application.DisplayStatusBar = False
Application.DisplayAlerts = False

Dim Dest As Workbook
Dim Source As Range
Dim ConstFilePath As String
Dim ConstFileName As String
Dim FileExtStr As String
Dim FileFormatNum As Long
Dim n As String

A = WorksheetFunction.Match("TypeDoma", [ФЛ_Ф_056!a1:ww1], 0)
B = WorksheetFunction.Match("TypUL", [ФЛ_Ф_056!a1:ww1], 0)
C = WorksheetFunction.Match("LS", [ФЛ_Ф_056!a1:ww1], 0)
J = WorksheetFunction.Match("VOL_IND", [ФЛ_Ф_056!a1:ww1], 0)
D = WorksheetFunction.Match("N_SERV", [ФЛ_Ф_056!a1:ww1], 0)
E = WorksheetFunction.Match("SQUARE", [ФЛ_Ф_056!a1:ww1], 0)
F = WorksheetFunction.Match("ROOMS", [ФЛ_Ф_056!a1:ww1], 0)
G = WorksheetFunction.Match("MAN_COUNT", [ФЛ_Ф_056!a1:ww1], 0)
H = WorksheetFunction.Match("STATUS", [ФЛ_Ф_056!a1:ww1], 0)


Set Source = Nothing
On Error Resume Next
Set Source = Union(Columns(A), Columns(B), Columns(C), Columns(J), Columns(D), Columns(E), Columns(F), Columns(G), Columns(H))
On Error GoTo 0
 
If Source Is Nothing Then
    MsgBox "The source is not a range or the sheet is protected, please correct and try again.", vbOKOnly
    Exit Sub
End If

Set Dest = Workbooks.Add(xlWBATWorksheet)
    Source.Copy
    With Dest.Sheets(1)
        .Cells(1).PasteSpecial Paste:=8
        .Cells(1).PasteSpecial Paste:=xlPasteValues
        .Cells(1).PasteSpecial Paste:=xlPasteFormats
        .Cells(1).Select
        Application.CutCopyMode = False
    End With



With Dest
      .SaveAs ConstFilePath & ConstFileName & FileExtStr
On Error Resume Next
End With

Dest.Close savechanges:=True

Application.ScreenUpdating = True
Application.EnableEvents = True
Application.DisplayStatusBar = True
Application.DisplayAlerts = True

End Sub

Изменено: Kentavrik7 - 18.03.2019 10:01:44
 
Поиск не пробовали?Просмотреть все файлы в папке
"Все гениальное просто, а все простое гениально!!!"
 
Привет!

Как вариант:
Переписать Вашу sub, чтобы она принимала на вход полное имя файла.
Взять sub, который я отрефакторил у Дмитрий(The_Prist) Щербаков и после строки
Код
For Each sFile In coll
вставить вызов своей процедуры с параметром sFile
Скрытый текст
[CODE][/CODE]
Сравнение прайсов, таблиц - без настроек
Страницы: 1
Наверх