在Excel 2013中编写FileSystemObject VBA不再起作用

Jim*_*Jim 1 excel vba excel-vba

在Excel 2013 VBA中,此代码运行,但不写入文件,也不输出任何错误.我启用了Microsoft Scripting Runtime.

我是否需要限定类名?我错过了什么?

Set fs = CreateObject("Scripting.FileSystemObject")
If Not fs.FolderExists(Write_Dir_Name) Then
   Create_Directory Write_Dir_Name
End If
If Right(Write_File_Name, 4) = ".xml" Then
   Set a = fs.CreateTextFile(Write_File_Name, True)
Else
   Set a = fs.CreateTextFile(Write_File_Name & ".xml", True)
End If

'...    
'Writes data to xml file
'...

a.Close
Run Code Online (Sandbox Code Playgroud)

Tim*_*ams 5

可能文件正在创建,但不是你正在寻找它.

您只在调用CreateTextFile时指定文件名,因此它最终会出现在当前目录中.

使用完整路径以防止混淆:

Set fs = CreateObject("Scripting.FileSystemObject")
If Not fs.FolderExists(Write_Dir_Name) Then
   Create_Directory Write_Dir_Name
End If
If Right(Write_File_Name, 4) = ".xml" Then
   Set a = fs.CreateTextFile(Write_Dir_Name & Write_File_Name, True)
Else
   Set a = fs.CreateTextFile(Write_Dir_Name & Write_File_Name & ".xml", True)
End If

'...    
'Writes data to xml file
'...

a.Close
Run Code Online (Sandbox Code Playgroud)