2016-06-09 4 views
2

Ich versuche, mehrere CSV-Dateien von Excel zu erstellen. Ich habe eine vba, die eine CSV-Datei pro Registerkarte erstellt, aber es gibt Leerzeichen in der Ausgabe.Entfernen von leeren Zellen beim Erstellen einer CSV-Datei von Excel

Ich habe 6 Spalten, die die CSV-Datei kehrt gibt es eine Möglichkeit für mich, leere Zellen zu ignorieren, damit ich nicht blank Komma haben zB „“

Hier ist der Code ich verwende:

Sub SaveWorksheetsAsCsv() 
Dim WS As Excel.Worksheet 
Dim SaveToDirectory As String 
Dim CurrentWorkbook As String 
Dim CurrentFormat As Long 
CurrentWorkbook = ThisWorkbook.FullName 
CurrentFormat = ThisWorkbook.FileFormat 
' Store current details for the workbook 
SaveToDirectory = "H:\test\" 
For Each WS In ThisWorkbook.Worksheet 
Sheets(WS.Name).Copy 
ActiveWorkbook.SaveAs Filename:=SaveToDirectory & ThisWorkbook.Name & "-" & WS.Name & ".csv", FileFormat:=xlCSV 
ActiveWorkbook.Close savechanges:=False 
ThisWorkbook.Activate 
Next 
Application.DisplayAlerts = False 
ThisWorkbook.SaveAs Filename:=CurrentWorkbook, FileFormat:=CurrentFormat 
Application.DisplayAlerts = True 
' Temporarily turn alerts off to prevent the user being prompted 
' about overwriting the original file. 
End Sub 

Dank Joe

+0

Wenn Sie nur einige Zellen entfernen, ist Ihr CSV ziemlich sinnlos, da Daten aus einer Spalte in mehreren Spalten enden. Sie könnten jedoch eine vollständige Spalte entfernen, wenn Sie das möchten. – pintxo

+0

Ich sehe, was Sie meinen, also, wenn ich nur bestimmte Spalten für die CSV verwenden möchte, wäre das möglich? Zum Beispiel brauche ich alle Spalte A, B und F, aber der Rest wird nicht wirklich benötigt. –

+0

Sie wollen die Kommas .... es ist die einzige Möglichkeit, wie Ihre Daten organisiert bleiben, wie @pintxo in einem CSV (Comma Separated Values) -Dokument erwähnt. – timthebomb

Antwort

-1

Leere Zellen können mit Selection.SpecialCells(xlCellTypeBlanks).Select gefunden werden, aber ich sehe nicht, dass Sie alle Daten auswählen.

Wenn Sie nur bestimmte Spalten benötigen, würde ich vorschlagen, dass Sie nach dem Kopieren auf Ihr neues Blatt andere Spalten entfernen. Fügen Sie diese Zeile nach dem Copy:

ActiveSheet.Columns(X).Delete 

Tun Sie dies für jede Spalte, die Sie löschen möchten, ersetzt X mit dem Namen der Spalte, dh. "C".

+0

Ich bin neu hier so Entschuldigungen, wie ich nicht der Beste in VBA bin. Ich versuche, die Menge der Ausgabe der CSV-Datei auf die relevanten Daten zu beschränken, die ich brauche. Ich brauche die Informationen aus Spalte A, B und F in einer CSV-Datei, aber die anderen Spalten werden nicht benötigt. –

+0

Nein, ich werde in meiner Antwort näher ausführen. Ich denke, ich komme dahin, wohin du gehst, deine Formulierung war unklar. –

+0

Denke, das sollte es tun, lass es mich wissen. –

Verwandte Themen