我正在尝试创建一个宏来创建包含输入的第一行到最后一行数据的.CSV文件。当我运行宏时,空白行显示在.CSV文件中。我需要什么代码来消除写入文件的空白行?下面列出的是VBA代码和.CSV文件中数据的快照。任何帮助将不胜感激。
' DeleteHeadings
Rows("1:1").Select
Selection.DeleteShift:=xlUp
'Find thelast Row with data in a Column
DimLastRow As Long
DimFirstRow As Integer
With ActiveSheet
LastRow =.Cells(.Rows.Count, "A").End(xlUp).Row
End With
FirstRow= 1
'SelectRows to Save
Range(Cells(FirstRow,"A"), Cells(LastRow, "BH")).Select
' SaveActive Workbook As CSV
Application.DisplayAlerts= False
ActiveWorkbook.SaveAsFilename:="Z:\RDS\Towers_Watson_Trans_File1", FileFormat:=xlCSV,CreateBackup:=False
ActiveWorkbook.CloseSaveChanges:=True
Application.DisplayAlerts= True
来自.CSV文件的数据
444444444,,HILDA,,ZOLDAN,19490611,F,{92B32AFF-7A9C-4FB0-BC98-51CBA0F642CC},20150801,1800.00,M,20150801,,,,,,,,,,,,,,,,,,,,,915
444444444,,MARY,,SHANAHAN,19501111,M,{92B32AFF-7A9C-4FB0-BC98-51CBA0F642CC},20151101,1080.00,M,20151101,,,,,, , , , , ,,,,,,,,
444444444,,MARY,,SZCZESNIAK,19450923,F,{92B32AFF-7A9C-4FB0-BC98-51CBA0F642CC},20150801,1800.00,M,20150801,,,, , , , , , , ,,,,
444444444,,DORIS,,HAMMONDS,19461214,F,{92B32AFF-7A9C-4FB0-BC98-51CBA0F642CC},20150801,1800.00,M,20150801,,,,,,,,,,,,,,,,,,,,,37
666666666,,ROSA,,GANA,19530613,F,{92B32AFF-7A9C-4FB0-BC98-51CBA0F642CC},20180601,1080.00,M,20180601,,,,,,,,,,,,,,,,,,,,,71SACK
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
答案 0 :(得分:3)
.SaveAs
将保存工作表,而不是选择(我没有看到任何options来保存选择而不是整个工作表)。数据末尾有空行,因此它们会保存到.CSV中。
尝试此操作以删除末尾的空白行:
' DeleteHeadings
Rows("1:1").Select
Selection.DeleteShift:=xlUp
'Find thelast Row with data in a Column
Dim LastRow As Long
'Dim FirstRow As Integer 'No longer needed - at least for this snippet
LastRow = ActiveSheet.Cells(.Rows.Count, "A").End(xlUp).Row
Rows(LastRow + 1 & ":" & ActiveSheet.UsedRange.Rows.Count).Delete
'SelectRows to Save
'you can comment these 2 lines out vvvv They're not buying you anything
FirstRow= 1
Range(Cells(FirstRow,"A"), Cells(LastRow, "BH")).Select
' SaveActive Workbook As CSV
Application.DisplayAlerts= False
ActiveWorkbook.SaveAsFilename:="Z:\RDS\Towers_Watson_Trans_File1", _
FileFormat:=xlCSV, CreateBackup:=False
ActiveWorkbook.Close SaveChanges:=True
Application.DisplayAlerts= True