如何创build一个CSV文件,如果它不存在?

我试图让Excel检查一个CSV文件的存在,如果它不存在,创build它。 我尝试了几种方式,但我似乎无法得到任何工作。 这是我的代码到目前为止。

If Dir("C:\Users\" & sUserName & "\Desktop\DataDump\") = "" Then MkDir "C:\Users\" & sUserName & "\Desktop\DataDump\" Dim ws As Worksheet For Each ws In ActiveWorkbook.Worksheets If ws.Name = MyCell.Value Then ws.SaveAs "C:\Users\" & sUserName & "\Desktop\DataDump\DataDump.csv", xlCSV Workbooks.Open Filename:="C:\Users\" & sUserName & "\Desktop\DataDump\DataDump.csv" Cells.Select Selection.Delete ActiveWorkbook.Close True LastRowCusip = ActiveSheet.Cells(ActiveSheet.Rows.Count, "BW").End(xlUp).Row Set Rng = Range("BG5:BW" & LastRowCusip) Workbooks.Open Filename:="C:\Users\" & sUserName & "\Desktop\DataDump\DataDump.csv" LR = Cells(Rows.Count, "A").End(xlUp).Row + 3 'last used row Rng.Copy Range("A" & LR) ActiveWorkbook.Close True End If Next End If 

只要我到了这一行:

Workbooks.Open Filename:=“C:\ Users \”&sUserName&“\ Desktop \ DataDump \ DataDump.csv”

Excelclosures!

我所要做的就是testing一个CSV文件的存在,并且它不存在,根据每个用户的sUserName(来自这里)在用户的桌面上创build它。

 sUserName = Environ$("username") 

有人能帮我做这个工作吗? 谢谢!!!

您需要先从工作簿中复制工作表。

更改这些行:

 ws.SaveAs "C:\Users\" & sUserName & "\Desktop\DataDump\DataDump.csv", xlCSV Workbooks.Open Filename:="C:\Users\" & sUserName & "\Desktop\DataDump\DataDump.csv" 

到以下几行

  ws.Copy ActiveWorkbook.SaveAs "C:\Users\" & sUserName & "\Desktop\DataDump\DataDump.csv", xlCSV 

worksheet另存为CSV时,会将整个活动工作簿保存到该文件并保持打开状态。 所以,在你的代码中,你正试图打开一个已经打开的文件。

上面的代码将工作表拖入一个新的工作簿中,并将其另存为一个CSV(CSV只需要一个工作表)。