VBA — экспорт в файл .csv без пустых строк внизу

#vba #csv

Вопрос:

Я использую приведенное ниже, чтобы экспортировать весь рабочий лист в csv. Этот csv-файл затем отправляется через SFTP. Тем не менее, он продолжает создавать csv-файлы с многочисленными пустыми строками внизу, которые вызывают проблемы на принимающей стороне. Как мне убедиться, что в csv нет этих пустых строк?

 Sub ExportCSVTIS()

'Export TISUpload tab as CSV

Application.ScreenUpdating = False

Dim wbkExport As Workbook
Dim shtToExport As Worksheet

Set shtToExport = ThisWorkbook.Worksheets("TISUpload")     'Sheet to export as CSV
Set wbkExport = Application.Workbooks.Add

shtToExport.Copy Before:=wbkExport.Worksheets(wbkExport.Worksheets.Count)
Application.DisplayAlerts = False                       
wbkExport.SaveAs Filename:="C:UsersdanDesktopAutoUploadsUpload_" amp; Format(Now(), "YYYYMMDD_hhmm") amp; ".csv", FileFormat:=xlCSV
Application.DisplayAlerts = True
wbkExport.Close SaveChanges:=False
Application.ScreenUpdating = True

End Sub
 

Ответ №1:

Существует множество решений для поиска последней непустой ячейки. Это быстрое и простое решение:

 Dim r As Range
Dim c As Variant
Dim MaxRow As Long
Set r = ActiveSheet.UsedRange

For Each c In r
    If LenB(Trim(c)) > 0 Then
        If c.Row > MaxRow Then MaxRow = c.Row
    End If
Next

r.Resize(MaxRow).Copy Destination:=wbkExport.Sheets(1).Range("A1")
 

Комментарии:

1. Спасибо!! Идеальный ответ.