如何将单页中的多行(在excel中)转换为多个CSV文件

时间:2014-04-14 13:21:57

标签: sql excel vba excel-vba csv

我想将多行(根据组)转换为多个csv。 我在Excel中的单页包含近3000行和5列。现在我希望我的Excel工作表中的每个组都转换为csv文件。

例如

1 ali Khan ali.khan@hotmail.com a1

2 juliet ibm juliet.ibm@hotmail.com a1

3 laura ann lura.ann@hotmail.com b1

4 abcd ewqa abcd.ewqa@hotmail.com b1

5 annia franics annia.franics@hotmail.com c1

现在我想根据组(a1,b1,c1 ...)将这些行提取到单独的CSV中。 每个组都创建新的csv。

需要解决方案。如果您建议任何免费工具或任何代码,那不重要。

1 个答案:

答案 0 :(得分:0)

使用此代码复制并粘贴到另一张工作表中并创建CSV文件。

Dim RowSt As Integer
Dim RowLs As Integer
Dim StriI As String
Dim StriL As String

RowSt = 4
RowLs = 4
StriI = Range("F" & RowLs).Value
StriL = Range("F" & RowLs).Value
While Range("F" & RowLs).Value <> ""
    StriL = Range("F" & RowLs).Value
    If StriL <> StriI Then
        Range("B" & RowSt & ":F" & RowLs - 1).Copy
        Sheets("Sheet2").Select
        Range("A1").Select
        ActiveSheet.Paste
        Selection.Clear
        Sheets("Sheet1").Select
        ActiveWorkbook.SaveAs Filename:="E:\0\A\" & StriI & ".csv", FileFormat:=xlCSVMSDOS, CreateBackup:=False
        StriI = StriL
        RowSt = RowLs
    End If
    RowLs = RowLs + 1
Wend
Range("B" & RowSt & ":F" & RowLs - 1).Copy
Sheets("Sheet2").Select
Range("A1").Select
ActiveSheet.Paste
Selection.Clear
Sheets("Sheet1").Select
ActiveWorkbook.SaveAs Filename:="E:\0\A\" & StriI & ".csv", FileFormat:=xlCSVMSDOS, CreateBackup:=False
Range("A1").Select