Экспорт листа из Excel в CSV - PullRequest
1 голос
/ 22 апреля 2010

Я создаю электронную таблицу, чтобы упростить ввод данных в одну из наших систем. Они вводят товарные запасы в эту электронную таблицу, чтобы рассчитать стоимость единицы товара (стоимость товара + налог + S & H). Программное обеспечение, которое мы приобрели, не может этого сделать.

В инвойсе может быть одна или несколько строк (дух!), И я рассчитываю окончательную стоимость единицы. Это работает нормально. Затем я хочу взять эти данные и создать из них CSV, чтобы они могли загрузить их в нашу систему инвентаризации. В настоящее время у меня есть вторая вкладка, которая расположена так, как будто я хочу CSV, и я делаю равную ячейку (= Лист! A3), чтобы получить значения на «листе экспорта». Проблема в том, что когда они сохраняют это в CSV, есть много пустых строк, которые необходимо удалить, прежде чем они смогут загрузить его. Я хочу файл, который содержит только данные, которые необходимы.

Я уверен, что это можно сделать в VBA, но я не знаю, с чего начать, или не знаю, как искать пример для запуска. Любое направление или другие варианты будут оценены.

Ответы [ 3 ]

2 голосов
/ 22 апреля 2010

Посмотрите на Range.SpecialCells(xlBlanks).EntireRow.Delete, я думаю, это то, что вы ищете!

0 голосов
/ 21 ноября 2012

расширение ответа @ dwo - этот код позволит вам как удалить пустые строки, так и экспортировать в CSV:

Sub export_to_csv(sheetname As String, OutDir As String)
    Sheets(sheetname).Select
    Set wb = ActiveWorkbook
    Set newwb = Workbooks.Add()
    wb.ActiveSheet.Copy newwb.ActiveSheet 'copy sheet to new workbook
    newwb.ActiveSheet.Activate
    ActiveSheet.UsedRange 'refresh the used range
    Range("A1:A" & ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row).Select 'select relevant cells
    Selection.SpecialCells(xlBlanks).EntireRow.Delete 'remove empty rows
    Application.DisplayAlerts = False 'avoid warning message when overwriting existing files
    newwb.SaveAs OutDir & sheetname, xlCSVWindows 'save as CSV
    newwb.Close 'close new workbook
    Application.DisplayAlerts = True 'reset warning messages
End Sub

Sub test()
    export_to_csv sheetname:="Sheet1", OutDir:="C:\temp\"
End Sub
0 голосов
/ 22 апреля 2010

Решение на этой странице сработало для меня лучше всего.Я просто должен был изменить его, чтобы он работал так, как мне нужно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...