Принимаются ответы как VBA, так и не VBA.
Проблема
Я пытаюсь сохранить лист в формате .csv, используя ThisWorkbook.SaveAs Filename:=strFilePath, FileFormat:=xlCSV
, но посколькуUsedRange
включает в себя завершающую пустую строку, я получаю нежелательную строку запятых в .csv.
То, что я сделал заранее в Коде
rngAllDate.SpecialCells(xlCellTypeVisible).Copy ThisWorkbook.Worksheets(1).Cells(1, 1)
Это может быть полезно, если вы пытаетесь воссоздать проблему.
Что я пробовал
- Удаление всех строк под моими данными
- Использование инструмента ластика для очистки всех строк во всех моих данных
- Удаление форматов со всего моего листа, включая мои данные, в случае, если границы вызвали проблему
- Использование следующего VBAкодовый блок:
With ThisWorkbook.Worksheets(1)
.UsedRange 'I'm told this recomputes the UsedRange
MsgBox .UsedRange.Address
Dim rngColumnsToDeleteAndClear As Range
Set rngColumnsToDeleteAndClear = .Range(.Cells(1, WorksheetFunction.CountA(.Rows(1)) + 1), .Cells(1, .Columns.Count))
MsgBox rngColumnsToDeleteAndClear.Address
rngColumnsToDeleteAndClear.EntireColumn.Clear
rngColumnsToDeleteAndClear.EntireColumn.Delete
Dim rngRowsToDeleteAndClear As Range
Set rngRowsToDeleteAndClear = .Range(.Cells(WorksheetFunction.CountA(.Columns(1)) + 1, 1), .Cells(.Rows.Count, 1))
MsgBox rngRowsToDeleteAndClear.Address
rngRowsToDeleteAndClear.EntireRow.Clear
rngRowsToDeleteAndClear.EntireRow.Delete
.UsedRange
MsgBox .UsedRange.Address
End With
Я получаю следующие результаты Msgbox из вышеуказанного кодового блока:
- $ A $ 1: $ N $ 11
- $ O $ 1: $ XFD $ 1
- $ A $ 11: $ A $ 1048576
- $ A $ 1: $ N $ 11
Я ожидаю следующее сообщение MsgboxРезультаты из вышеупомянутого codeblock:
- $ A $ 1: $ N $ 11
- $ O $ 1: $ XFD $ 1
- $ A $ 11: $ A 1048576
- $ A $ 1: $ N $ 10
Что еще можно попробовать?