【发布时间】:2014-12-12 07:16:26
【问题描述】:
我尝试了几种方法在一个工作簿中打开一个单独的工作簿,但总是收到错误消息 Application-defined or object-defined 错误,以下是我的代码:
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 上。
请帮忙!
【问题讨论】:
-
如果“文件已打开”,错误出现在哪一行?
-
文件打开后立即弹出消息,并在我的第一个示例中停在 set x= Workboks.Open(MyFile1)
-
是从某处调用
PrepaidImport(),和/或后续代码试图做什么?你有从activeworkbook运行的代码吗? -
我刚刚测试了
filePath = Worksheets("Sheet1").Range("A1").Value: Set wkb = Workbooks.Open(filePath),当调用代码的workbook是active时它可以工作,但是当它不是active时得到1004错误 -
不,PrepaidImport() 完全独立于空白的 excel 电子表格,随后的代码试图将范围从一个电子表格复制到另一个打开的电子表格,我正在从这个空白活动中运行代码工作簿