VBA打开工作表失败

时间:2018-01-22 18:46:25

标签: vba

Sub TEST()

Workbooks.Open ("C:\Desktop\TEST\TEST\TEST2.xlsx")

Workbooks("C:\Desktop\TEST\TEST\TEST2.xlsx").Sheets("Sheet1").Range("A1").Value = 1
End Sub

它让我下标超出了第3行的范围

但是,如果我尝试

Workbooks("TEST2.xlsx").Sheets("Sheet1").Range("A1").Value = 1

这样可行,我确定路径正确,文件可以在第二行打开。有什么建议吗?

2 个答案:

答案 0 :(得分:2)

使用变量来确定对象的范围,看看是否有帮助:

Dim wb as Workbook
Set wb = Workbooks.Open("C:\Desktop\TEST\TEST\TEST2.xlsx")
wb.Sheets("Sheet1").Range("A1").Value = 1

原始代码中的问题:

Workbooks("C:\Desktop\TEST\TEST\TEST2.xlsx")

那是工作簿的名称。工作簿的Name只是"TEST2.xlsx",正如您所观察到的,这可行(但上述方法更可取):

Sub TEST()

Workbooks.Open ("C:\Desktop\TEST\TEST\TEST2.xlsx")

Workbooks("TEST2.xlsx").Sheets("Sheet1").Range("A1").Value = 1
End Sub

答案 1 :(得分:1)

Excel通过文件名引用工作簿,不包括路径。你通过第二种方法可以证明这一点。

其后果是Why on earth can't Excel handle 2 files with the same name?

等问题