将数据从Excel复制到CSV文件
我有一个Excel电子表格。将数据从Excel复制到CSV文件,excel,vba,csv,Excel,Vba,Csv,我有一个Excel电子表格。 我想将条形码和数量数据从Excel工作表复制到csv文件,如下所示: 101320546 101330330 101340360 代码如下: Dim i As Long, lastrow As Long ' Sheet name is İrsaliye lastrow = Sheets("İrsaliye").Range("C1000").End(xlUp).Row For i = 23 To lastrow
我想将条形码和数量数据从Excel工作表复制到csv文件,如下所示: 101320546 101330330 101340360 代码如下:
Dim i As Long, lastrow As Long
' Sheet name is İrsaliye
lastrow = Sheets("İrsaliye").Range("C1000").End(xlUp).Row
For i = 23 To lastrow
Cells(i, "C").Copy
Cells(i, "I").Copy
Workbooks.Add
ActiveSheet.Paste
ActiveWorkbook.SaveAs Filename:= _
"C:\Users\oguz\Desktop\csv\yourCSV.csv" _
, FileFormat:=xlCSV, CreateBackup:=False, Local:=True
Application.DisplayAlerts = False
ActiveWorkbook.Close
Application.DisplayAlerts = True
Next
它只需要最后的数量数据366到csv文件
如果我使用下面的代码行
Range("C23:C25").Copy
而不是
Cells(i, "C").Copy
它将条形码中的所有数据转换为csv文件,但通过这种方式,我无法将数量转换为csv文件。请尝试以下操作:
Dim i As Long, lastRow As Long
lastRow = Sheets("İrsaliye").Cells(Rows.Count, "A").End(xlUp).Row
Dim sourceWb As Workbook
Dim destinationWb As Workbook
Set sourceWb = ThisWorkbook
Set destinationWb = Workbooks.Add
sourceWb.ActiveSheet.Range("C2:C" & lastRow).Copy
destinationWb.Sheets(1).Range("A1").PasteSpecial xlPasteAll
Application.CutCopyMode = False
sourceWb.ActiveSheet.Range("I2:I" & lastRow).Copy
destinationWb.Sheets(1).Range("B1").PasteSpecial xlPasteAll
Application.ScreenUpdating = True
Application.DisplayAlerts = False
destinationWb.SaveAs Filename:="c:\TMP\tmp.csv", FileFormat:=xlCSV, CreateBackup:=False
destinationWb.Close SaveChanges:=False
Application.DisplayAlerts = True
它给你的错误是什么?它发生在哪一行?请在你的问题中包括这一点。@braX你是对的。我编辑了我的问题。它没有给出一个错误。只需将最后一个数量数据366复制到csv文件中即可。乍一看,您有两行
Copy
行,一行接一行,使得第一行不相关。您需要先粘贴第一个工作簿,然后再进行第二次复制。再次查看时,您正在为循环的每个迭代创建一个新工作簿,然后每次保存同一文件的overtop。我怀疑这是你的意图。是的,我试着一次将所有数据传送到csv。谢谢穆扎弗,它可以工作。这也是一个简单的问题。在将行粘贴到csv之前,excel只是打开而不是关闭。我怎样才能自动关闭它呢?亲爱的穆扎夫,非常感谢。也许我走得太远了,但我也有一个问题。当我转换为数据时,它用逗号(,)分隔条形码和数量。是否可以在条形码和数量之间用分号(;)代替逗号(,)呢?这个建议可能会对您有所帮助。如果不是的话,请再次感谢。我在这里找到了解决办法,艾瓦拉。