2015-09-04 72 views
0

我創建在Excel 2011宏爲Mac創建報告。部分宏需要打開文件(99%的時間),編輯文件,然後關閉文件(保存更改)。在極少數情況下,如果文件不存在,它希望創建一個新的excel文件,對其進行編輯,然後關閉該文件(保存更改)。如何創建使用VBA新的Excel文件的Mac

我已經成功地創建打開使用存在的問題和答案在網上現有文件的能力。但是,如果找不到文件,我無法確定創建文件的方法。如果我試圖簡單地打開一個不存在的文件,那麼它就會出錯。

下面是代碼:

Dim nExcel As Object 
Dim nWB As Object 
If FileOrFolderExistsOnMac(1, strFile) Then 
     Workbooks.Open (strFile) 
     ... 
     ActiveWorkbook.Close SaveChanges:=True 
    Else 
     'Note: I understand that this check should be redundant 
     Set nExcel = GetObject(, "excel.application") 'gives error 429 if Excel is not open 
     If Err = 429 Then 
      Set nExcel = CreateObject("excel.application") 'create 
      Err.Clear 
     End If 
     'Set nWB = nExcel.documents.Add 
     ... 
     ActiveWorkbook.Close SaveChanges:=True 
    End If 

好,語句作品如果塊。在Else塊中,我發現創建一個不存在的文件的唯一相關文章是這樣的:Create Word file from Excel 2011

很明顯,Word與Excel不一樣,希望它們有相似的語法是一個牽強的夢想。但是,我繼續試了一下,它跑,直到它得到的是被註釋掉,我與運行時錯誤438設置NWB = nExcel.documents.Add行:對象不支持此屬性或方法。

回答

3

你不需要Set nExcel線。這是爲了控制另一個應用程序(在Windows上)的Excel。所有你需要的是創建一個新的`工作簿',因爲你已經在Excel裏面,上下文已經存在,所以你需要做的就是用這個替換它,並刪除錯誤檢查:

Workbooks.Add