使用macros将数据从excel复制到csv

我想从Excel中复制数据到CSV,但似乎无法find正确的逻辑。 以下是我想如何复制数据。 例如,我想在excel的单元格D4中将数据复制到csv中的A4中。 我想重复这个,直到D列中的单元格为空。

"Excel ---> CSV "D4-->A4 "F4&G4-->B4 "K4-->E4 "L4-->F4 "N4-->G4 "P4-->I4 

对不起,我刚开始编写macros时会问这样一个基本的问题。 以下是我目前的代码。 这将创buildcsv文件,但不填充我需要的数据。

 Sub csvfile() Dim fs As Object, a As Object, i As Integer, s As String, t As String, l As String, mn As String Set fs = CreateObject("Scripting.FileSystemObject") sUser = Environ("username") Set a = fs.CreateTextFile("S:\ics\jellybean\" & sUser & ".csv", True) For r = 4 To Range("A65536").End(xlUp).Row s = "" c = 6 While Not IsEmpty(Cells(r, c)) s = s & Cells(r, c) & "," c = c + 1 Wend a.writeline s 'write line Next r End Sub 

像这样的东西使用数组,它是非常有效的(它假定你的数据有相同的列长度从D到P的感兴趣的列)

 Sub csvfile() Dim fs As Object Dim a As Object Dim lngRow As Long Dim X Set fs = CreateObject("Scripting.FileSystemObject") Set a = fs.CreateTextFile("c:\temp\" & Environ("username") & ".csv", True) X = Range([d4], Cells(Rows.Count, "P").End(xlUp)).Value2 For lngRow = 1 To UBound(X) a.writeline X(lngRow, 1) & "," & X(lngRow, 3) & X(lngRow, 4) & ",,," & X(lngRow, 8) & "," & X(lngRow, 9) & "," & X(lngRow, 11) & ",," & X(lngRow, 13) Next a.Close End Sub