将工作表从Excel导出为CSV
问题描述:
我正在创建电子表格以帮助缓解数据输入到我们的系统之一。他们将库存物品输入此电子表格以计算物料的单位成本(物料成本+税+ S & H)。我们购买的软件无法做到这一点。将工作表从Excel导出为CSV
一张发票可以有一个或多个行(杜!),我计算最终的单位成本。这工作正常。然后我想获取这些数据并创建一个CSV文件,以便将它们加载到我们的库存系统中。我目前有第二个选项卡,像我想要的CSV一样布置,并且执行相同的单元格(= Sheet!A3)以获取“导出表”中的值。问题是,当他们将其保存为CSV文件时,有许多空白行需要在可以上传之前将其删除。我想要一个只包含所需数据的文件。
我确信这可以在VBA中完成,但我不知道从哪里开始或知道如何搜索示例以开始。任何方向或其他选择将不胜感激。
答
看看Range.SpecialCells(xlBlanks).EntireRow.Delete
,我想这就是你要找的!
答
扩大对@ 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
这是伟大的,但有编写VBA做这样的事情一个很好的教程? – 2010-04-22 13:13:15