2015-05-15 8 views
1

Я пытаюсь создать макрос для создания .CSV-файла, который содержит от первой до последней строки введенных данных. Когда я запускаю макрос, пустые строки отображаются в файле .CSV. Какой код мне нужен, чтобы исключить пробелы строк из записи в файл? Ниже приведен код VBA и моментальный снимок данных в файле .CSV. Любая помощь будет принята с благодарностью.Устранение пустых строк при создании файла .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

Не лист сохраняется в виде файла .csv а не выбор? Возможно, вам придется что-то сделать, например, «изменить» («A» и «LastRow + 1 &»: A1000000 »). Entirerow.delete', это может удалить жесткие строки, но не уверен, хотя стоит попробовать. – Davesexcel

ответ

2

.SaveAs сохранит рабочий лист, а не выбор (я не вижу никаких options, чтобы сохранить выбор вместо всего рабочего листа). В конце ваших данных есть пустые строки, поэтому они сохраняются в .CSV.

Попробуйте удалить пустые строки в конце:

' DeleteHeadings 
Rows("1:1").Select 
Selection.DeleteShift:=xlUp 

'Find thelast Row with data in a Column 
DimLastRow As Long 
'DimFirstRow 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.CloseSaveChanges:=True 
Application.DisplayAlerts= True 
+0

Думаю, вам нужно «Сдвинуть (1)» в сторону от последней строки или «Строки (LastRow + 1 & ...)». В противном случае вы также рискуете удалить последнюю строку данных. –

+0

А, хороший момент. Я обновлю код. – FreeMan

+0

Это тоже. Я всегда предпочитаю «Смещение» на диапазоне, чтобы сделать очевидным, к какой ячейке я пытался добраться. Либо работает. Хорошее решение в любом случае. –

Смежные вопросы