Этот макрос делает почти то, что мне нужно, но я бы хотел, чтобы он включал «_sspl.xlsx» в конце имени каждого листа и помещал файлы в папку с таким же именем, как и исходный путь к файлу.

Я не могу понять это правильно.

Sub CreateNewFolder()
Dim wbThis As Workbook
Dim wbNew As Workbook
Dim ws As Worksheet
Dim strFilename As String

    Set wbThis = ThisWorkbook.Name
    For Each ws In wbThis.Worksheets
        strFilename = wbThis.Path & "/" & ws.Name
        ws.Copy
        Set wbNew = ActiveWorkbook
        wbNew.SaveAs strFilename
        wbNew.Close
    Next ws
End Sub

1 ответ1

0

«Я не могу понять это правильно» - не самое точное описание проблемы :)

Следующий код не протестирован (у меня нет Excel на этой машине), но я думаю, что он будет делать то, что вы хотите.

Sub CreateNewFolder()
Dim wbThis As Workbook
Dim wbNew As Workbook
Dim ws As Worksheet 
Dim strFilename As String

Set wbThis = ActiveWorkbook
For Each ws In wbThis.Worksheets
    strFilename = wbThis.Path & "/" & ws.Name & "_sspl.xlsx"
    ws.Copy
    Set wbNew = ActiveWorkbook
    wbNew.SaveAs Filename:=strFilename
    wbNew.Close
Next ws

End Sub

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .