Спасибо большое, то что нужно!
Переделал под себя
Переделал под себя
Код |
---|
Sub Выбор_файла() Dim sFileName As String, sNewFileName As String With Application.FileDialog(msoFileDialogFilePicker) .Title = "Bыбор файла и обработки его макросом" .ButtonName = "Выбрать этот файл" .AllowMultiSelect = False .InitialFileName = "" If .Show = -1 Then sFileName = .SelectedItems(1) 'имя файла для перемещения Workbooks.Open .SelectedItems(1) 'имя файла для копирования ' Начало редактирование выбранного файла Rows("1:1").Select With Selection.Font .Name = "Arial" .Size = 8 .Strikethrough = False .Superscript = False .Subscript = False .OutlineFont = False .Shadow = False .Underline = xlUnderlineStyleNone .ColorIndex = 1 .TintAndShade = 0 .ThemeFont = xlThemeFontNone End With ' Начало редактирование выбранного файла Rows("2:2").Select Selection.Delete Shift:=xlUp Cells.Select With Selection .VerticalAlignment = xlTop .WrapText = False .Orientation = 0 .AddIndent = False .IndentLevel = 0 .ShrinkToFit = False .ReadingOrder = xlLTR .MergeCells = False End With Selection.UnMerge Columns(2).Delete Columns(3).Delete Columns(4).Delete Columns(4).Delete Columns(5).Delete Columns(5).Delete Columns(6).Delete Columns(6).Delete 'конец Range("A3:I1000").Select Application.CutCopyMode = False ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Clear ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=Range("B4:B38") _ , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal With ActiveWorkbook.Worksheets("Sheet1").Sort .SetRange Range("A3:I1000") .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With 'конец Columns("A:E").Select Selection.Copy Windows("Питание2.xlsm").Activate Range("B1").Select ActiveSheet.Paste 'начало закрытия неактивных книг Application.DisplayAlerts = False Dim ActiveWB: ActiveWB = ThisWorkbook.Name For Each wb In Application.Workbooks If (wb.Name <> ActiveWB) Then wb.Close End If Next 'конец закрытия неактивных книг ' начало фильтрации Columns("F:F").Select Selection.Replace What:="КомплекснОбед", Replacement:="обед", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False Selection.Replace What:="КомплекснУжин", Replacement:="ужин", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False Selection.Replace What:="Ужин ночь", Replacement:="ночной ужин", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False Columns("B:B").ColumnWidth = 10.67 Columns("C:F").Select Columns("C:F").EntireColumn.AutoFit Sheets("Питание Сотрудников").Select Rows("8").Select Sheets("Сотрудники").Select Range("B2").Select 'конец Else Exit Sub End If End With '---выбор папки--- With Application.FileDialog(msoFileDialogFolderPicker) .Title = "Куда переместить файл" .ButtonName = "Выбрать эту папку" .AllowMultiSelect = False .InitialFileName = "" If .Show = -1 Then sNewFileName = .SelectedItems(1) 'имя файла для перемещения Else Exit Sub End If End With sNewFileName = sNewFileName & Application.PathSeparator & Right(sFileName, Len(sFileName) - InStrRev(sFileName, "\")) Name sFileName As sNewFileName 'перемещаем файл MsgBox "Файл " & Right(sFileName, Len(sFileName) - InStrRev(sFileName, "\")) & " перемещен", vbInformation, "Сообщение" End Sub |