2014-12-10 68 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