Я пытаюсь экспортировать 15 рабочих листов из книги Excel в файлы CSV. Книга содержит 18 листов. Первые три листа не нужно экспортировать, поскольку они содержат необработанные данные, инструкции и вычисления.Экспорт рабочих листов XLSX (несколько) в виде отдельных CSV-листов с вложенными операциями if
Файлы CSV для импорта в Microsoft Dynamics AX. Мне нужно очистить любой cel, содержащий «~» до сохранения в виде csv. Но только из 15 листов для экспорта.
Я нашел несколько тем на этом форуме, которые позволяют мне создать csv успешно.
Моих V в конечном итоге глядя, как это: (взломать вместе нескольких кодовых наборов)
Sub SaveWorksheetsAsCsv()
Dim WS As Excel.Worksheet
Dim SaveToDirectory As String
Dim CurrentWorkbook As String
Dim CurrentFormat As Long
CurrentWorkbook = ThisWorkbook.FullName
CurrentFormat = ThisWorkbook.FileFormat
' Store current details for the workbook
SaveToDirectory = "C:\Temp\Prices\CSV\"
For Each WS In ThisWorkbook.Worksheets
If WS.Name <> "Instructions" And WS.Name <> "Parameters" And WS.Name <> "BI Data & Worksheet" Then
Sheets(WS.Name).Copy
For Each Cell In [b:b]
If Cell.Value = "~" Then Cell.ClearContents
'put any value you want here
Next Cell
Sheets(WS.Name).Copy
For Each Cell In [A:A]
If Cell.Value = "~" Then Cell.ClearContents
'put any value you want here
Next Cell
ActiveWorkbook.SaveAs Filename:=SaveToDirectory & WS.Name & ".csv", FileFormat:=xlCSV
ActiveWorkbook.Close SaveChanges:=False
ThisWorkbook.Activate
End If
Next
Application.DisplayAlerts = False
ThisWorkbook.SaveAs Filename:=CurrentWorkbook, FileFormat:=CurrentFormat
Application.DisplayAlerts = True
' Temporarily turn alerts off to prevent the user being prompted
' about overwriting the original file.
End Sub
Где я бег на вопрос, что в то время как экспорт работает нормально, и выглядит CSV замечательно, все временные «копии» книг больше не закрываются заявлением ActiveWorkbook.Close SaveChanges:=False
.
Я уверен, что это связано с моими вставками IF, но не может понять, что я делаю неправильно.
Привет, Мэтью, благодарю вас за быстрый ответ. Это, безусловно, работает. Я бы заинтересовался тем, что я делаю неправильно с моим вложенным оператором if. –
@Niels de Milliano Одновременно может быть активна только одна книга. Выполняя листы (WS.name).Скопируйте, вы открываете дополнительные книги, оставляя последнее неактивным. Я добавлю свой ответ, чтобы уточнить. Дай мне минуту. – MatthewD