Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将数据从Excel复制到CSV文件_Excel_Vba_Csv - Fatal编程技术网

将数据从Excel复制到CSV文件

将数据从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电子表格。

我想将条形码和数量数据从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只是打开而不是关闭。我怎样才能自动关闭它呢?亲爱的穆扎夫,非常感谢。也许我走得太远了,但我也有一个问题。当我转换为数据时,它用逗号(,)分隔条形码和数量。是否可以在条形码和数量之间用分号(;)代替逗号(,)呢?这个建议可能会对您有所帮助。如果不是的话,请再次感谢。我在这里找到了解决办法,艾瓦拉。