Ошибка при попытке сохранить лист Excel в формате CSV с помощью макроса Excel VBA - PullRequest
2 голосов
/ 15 марта 2019

Использование Excel 2010 в Windows 7. У меня есть макрос VBA, который сохраняет первый лист книги Excel (.xlsm) в файл CSV. Это в основном работало в прошлом. В последнее время я получаю сообщения об ошибках на изображении ниже, в которых указано «Ошибка времени выполнения« 1004 »: Microsoft Excel не может открывать или сохранять больше документов из-за недостатка доступной памяти или дискового пространства».

Итак, пара вещей:

  • Распространенным предложенным решением из моего поиска в Google является установка местоположения файла в качестве надежного местоположения. Это не сработало.
  • У меня достаточно места на диске. Это не может быть проблемой.
  • Я не уверен, что именно подразумевается под «доступной памятью», но если она каким-либо образом относится к значению физической памяти, указанному в диспетчере задач Windows, то это значение составляет 75%. Максимальный размер CSV-файла составляет около 1500 КБ.
  • Я всегда могу сохранить этот лист в виде CSV вручную, не обнаруживая никаких сообщений об ошибках, но когда я делаю это через этот макрос VBA, я получаю сообщение об ошибке.

Изображение сообщения об ошибке

Макрос Excel VBA для сохранения в формате CSV:

Sub saveAsCSV()
Application.DisplayAlerts = False

ThisWorkbook.Sheets("Sheet1").Copy
ActiveWorkbook.SaveAs Filename:="dummyfilename.csv", FileFormat:=xlCSV, CreateBackup:=True
ActiveWorkbook.Close

Application.DisplayAlerts = True
End Sub

1 Ответ

0 голосов
/ 15 марта 2019

Попробуйте, вам не нужно использовать Copy или Activate.Если ваш код находится в рабочей книге, которую вы хотите сохранить как рабочую книгу, вы можете использовать ThisWorkbook.Престижность @Variatus для определения необходимости пути.

ThisWorkbook.Sheets("Sheet1").SaveAs ThisWorkbook.Path & "/" & "dummyfilename" & ".csv", FileFormat:=6
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...