Сохраните все листы как csvs и сохраните исходный файл активным - PullRequest
2 голосов
/ 13 мая 2019

У меня есть вопрос, я хотел бы сохранить все свои рабочие листы в отдельных файлах CSV, и после его завершения следует использовать оригинальный файл Excel. Я нашел несколько вопросов, связанных с этим в stackoverflow, но я не могу объединить их, чтобы заставить его работать: (

Вот что у меня на данный момент работает:

Sub SaveSheetsAsCsv()

Dim ws As Worksheet

Application.DisplayAlerts = False

For Each ws In ActiveWorkbook.Worksheets
    ws.SaveAs ActiveWorkbook.Path & "\" & ws.Name & ".csv", xlCSV, Local:=True
Next

Application.DisplayAlerts = True


End Sub

В результате все мои рабочие листы сохраняются в одной и той же папке, НО, тогда моя рабочая тетрадь называется моей последней рабочей таблицей, и если я хочу закрыть ее, я должен сохранить ее ... но вместо этого я хотел бы, чтобы оригинальный файл Excel активен.

Есть идеи, как мне это сделать?

Я пытался реализовать это: Держите тот же Excel , но я всегда получаю сообщение об ошибке: (

Буду признателен за любые советы и помощь.

1 Ответ

0 голосов
/ 13 мая 2019

Приведенная ниже настройка копирует лист в новую книгу, сохраняет ее как CSV и закрывает.

Sub SaveSheetsAsCsv()

Dim wb As Workbook
Dim ws As Worksheet

Set wb = ThisWorkbook
Application.DisplayAlerts = False

For Each ws In ActiveWorkbook.Worksheets
    ws.Copy
    ActiveWorkbook.SaveAs wb.Path & "\" & ws.Name & ".csv", xlCSV, Local:=True
    ActiveWorkbook.Close
Next

Application.DisplayAlerts = True

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...