将工作表从Excel导出到CSV

我正在创build一个电子表格来帮助简化数据input到我们的系统之一。 他们将库存物品input此电子表格,以计算物料的单位成本(物料成本+税金+ S&H)。 我们购买的软件不能做到这一点。

一张发票可以有一个或多个行(杜!),我计算最后的单位成本。 这工作正常。 然后我想获取这些数据并从中创build一个CSV,以便将其加载到我们的库存系统中。 我目前有第二个标签,就像我想要的CSV,我做一个相等的单元格(= Sheet!A3),以获得“出口表”的值。 问题是,当他们保存到一个CSV,有很多空白行,需要删除之前,他们可以上传。 我想要一个只包含所需数据的文件。

我相信这可以在VBA中完成,但是我不知道从哪里开始,或者知道如何search一个例子来开始。 任何方向或其他选项将不胜感激。

看看Range.SpecialCells(xlBlanks).EntireRow.Delete ,我想这就是你要找的!

本页面的解决scheme对我来说最合适。 我只是不得不修改它,让它为我所需要的工作。

扩展@ 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