У меня есть очень похожий вопрос, как этот пост: Save individual Excel sheets as CSVСохранить Конкретная один лист, как .csv
Мой вопрос отличается тем, что мне нужно только один лист для сохранения Это ответ с этого поста
Dim ws As Worksheet
For Each ws In ActiveWorkbook.Worksheets
ws.SaveAs "C:\docs\" & ws.Name & ".csv", xlCSV
Next
Этот код сохраняет каждый лист в определенной папке и называет файл таким же, как и рабочий лист. 2 проблемы, я вижу:
1 - Рабочая книга, над которой вы в настоящее время работали, становится самым последним листом, сохраненным кодом. Если вы хотите продолжать работать над своей книгой, вам нужно открыть исходный файл. Было бы лучше, если бы новая книга была открыта и сохранена отдельно от той, над которой ведется работа.
2- Он сохраняет каждый рабочий лист. Мне нужно только, чтобы сохранить один конкретный лист, т.е. Лист2
я нашел этот другой код, но я новичок в VBA и только знать, как создать макрос, скопируйте & вставить код в него. Я получаю ошибку при запуске кода.
Sub test()
Application.DisplayAlerts = False
ThisWorkbook.Sheets(strSourceSheet).Copy
ActiveWorkbook.SaveAs Filename:=strFullname, FileFormat:=xlCSV, CreateBackup:=True
ActiveWorkbook.Close
Application.DisplayAlerts = True
End Sub
Надеюсь, меня могут подтолкнуть в правильном направлении. Благодаря!
В вашем примере strSourceSheet (строковая переменная) должен быть установлен на «Sheet2», а не на рабочий лист. – YowE3K
@ YowE3K: Да, вы правы. Я непосредственно набрал его, не тестируя его (что-то, что я редко делаю). Я исправил этот пост. –
Re '(что-то, что я редко делаю)' - вы лучше SOer, чем я, - я обычно отвечаю без тестирования и замечаю только, что он не работает, когда OP жалуется на ошибки. (Я пытаюсь поправиться, но это медленный прогресс.) – YowE3K