【发布时间】:2015-09-02 17:57:01
【问题描述】:
我有一个包含 .csv 文件、.xls 文件和 xlsx 文件的文件夹。下面的代码是整个项目的一部分(当我删除下面的代码时,剩下的代码实现了我想要的)。大部分代码是从某个地方(这里和互联网周围)编译的。我想要代码做的是只打开文件夹中的 .csv 文件,将它们转换为 Excel 文件,关闭文件,然后删除文件夹中的 .csv 文件。代码最终发生的事情是代码创建的一个或两个文件都从文件夹中删除,而我一无所有。提前感谢您的帮助。
Sub Test()
'
' Test Macro
'
'Set variables for the below loop
Dim MyFolder As String
Dim MyFile As String
Dim GetBook As String
Dim GetBook2 As String
Dim MyCSVFile As String
Dim KillFile As String
MyFolder = "REDACTED"
MyFile = Dir(MyFolder & "\*.xls")
MyCSVFile = Dir(MyFolder & "\*.csv")
'Open all of the .csv files in the folder and convert to .xls
Do While MyCSVFile <> ""
Workbooks.Open Filename:=MyFolder & "\" & MyCSVFile
GetBook = ActiveWorkbook.Name
GetBook2 = Left(GetBook, Len(GetBook) - 4)
ActiveSheet.Name = "Sheet1"
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:=GetBook2, FileFormat:=56
ActiveWorkbook.Close False
Kill MyFolder & "\" & GetBook
Loop
End Sub
【问题讨论】:
-
为什么要保存为 xlExcel8(例如 FileFormat:=56)? .XLSX 是否有一些限制(例如 xlOpenXMLWorkbook 或 FileFormat:=51)?
-
我可能错了,但你不想要 {...Filename: = myfolder & "\" & GetBook2 & ".xls" ...}