2011-01-13 124 views
0

How can I install/use “Scripting.FileSystemObject” in Excel 2011 for MAC?的回答似乎表明,在Excel 2010中为Mac使用Scripting.FileSystemObject可能。在Excel 2011 VBA for Mac中是否有替代Scripting.FileSystemObject?

什么其他替代可用,因此我可以:

  • 通过每个文件中的每个工作表中获取所有Excel文件的集合在特定目录
  • 迭代并将其导出到a .csv文件

当前这是为每个文件六个步骤过程:

--how to create CSV files for all worksheets in a file: 
1. open file 
2. click "Developer" 
3. click editor 
4. click ThisWorkbook 
5. copy in: 
Sub save_all_csv() 
    On Error Resume Next 
    Dim ExcelFileName As String 
    ExcelFileName = ThisWorkbook.Name 
    For Each objWorksheet In ThisWorkbook.Worksheets 
     Filename = "FILE-" & ExcelFileName & "-WORKSHEET-" & objWorksheet.Name & ".csv" 
     objWorksheet.SaveAs Filename:="Macintosh HD:Users:edward:Documents:temporaryNoBackup:" & Filename, FileFormat:=xlCSV, CreateBackup:=False 
    Next 
    Application.DisplayAlerts = False 
    Application.Quit 
End Sub 
6. click run (it closes by itself) 

我正在寻找一种方式来自动这在Mac上,理想情况下,(?cron作业?服务)将打开excel文件每10分钟一次,然后依次查看目录,将所有其他Excel文件转换为.csv文件,然后自行关闭。

没有Scripting.FileSystemObject的,我怎样才能使这个Excel到CSV转换Mac上的全自动的吗?

回答

1

我能想到的唯一方法是使用“目录”功能。由于mac支持文件名中的额外字符,通配符不能与“Dir”函数一起使用。这是一个示例。

Function GetFileList(folderPath As String) As Collection 
'mac vba does not support wildcards in DIR function 

    Dim file As String 
    Dim returnCollection As New Collection 

    If Right$(folderPath, 1) <> "\" Then 
     folderPath = folderPath & "\" 
    End If 

    file = Dir$(folderPath) 'setup initial file 

    Do While Len(file) 
     returnCollection.Add folderPath & file 
     file = Dir$ 
    Loop 

    Set GetFileList = returnCollection 
End Function 
相关问题