2014-12-10 72 views
1

我試過幾種方法來打開一個工作簿單獨的工作簿,但總是得到錯誤信息應用程序定義或對象定義的錯誤打開工作簿時,下面是我的代碼:錯誤使用VBA

Sub PrepaidImport() 
Dim x As Workbook, y As Workbook, vals As Variant, MyFile1 As String, MyFile2 As String 
MyFile1 = Application.GetOpenFilename() 
Set x = Workbooks.Open(MyFile1) 
End Sub 

下面的代碼得到同樣的錯誤,以及:

Sub PrepaidImport() 
Dim x As Workbook, y As Workbook, vals As Variant, MyFile1 As String, MyFile2 As String 
Set x = Workbooks.Open("M:\Company\2014\YTD 2014 Prepaid Assets.xlsx") 
End Sub 

下面的代碼得到一個差異的錯誤,因爲我試圖打開一個二進制工作簿:

Sub PrepaidImport() 
Dim y as Workbook 
Set y = Workbooks.Open("Y:\Branch\Prepaid Assets Amortization Import Template.xlsb") 
End Sub 

這是我的全部代碼:

Sub PrepaidImport() 
Dim x As Workbook, y As Workbook, vals As Variant, MyFile1 As String, MyFile2 As String 

Set x = Workbooks.Open("M:\Company\2014\YTD 2014 Prepaid Assets.xlsx") 
Set y = Workbooks.Open("Y:\Branch\Prepaid Assets Amortization Import Template.xlsb") 

vals = x.Worksheets("11.2014").Range("A6", "A" &x.Worksheets("11.2014").Range("A6").End(xlDown)).Value 
Set y.Worksheets("Journal_Details").Range("Y1").Value = vals 

x.Close 

End Sub 

的文件被打開,但錯誤信息彈出,使我無法運行後面的代碼。我在Excel 2007上。

請幫忙!

+0

如果「的文件被打開」,發生錯誤的路線是什麼? – tospig 2014-12-10 23:22:20

+0

在文件打開後彈出消息並在第一個示例中停止設置x = Workboks.Open(MyFile1) – walkens 2014-12-10 23:27:29

+0

從某處調用PrepaidImport(),和/或後續代碼嘗試執行什麼操作?你有從'activeworkbook'運行的代碼嗎? – tospig 2014-12-10 23:36:39

回答

0

的問題是在倒數第二行,你不應該有「設置」聲明中的分配行的前面,也就是說,它應該只是

y.Worksheets("Journal_Details").Range("Y1").Value = vals