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
这样可行,我确定路径正确,文件可以在第二行打开。有什么建议吗?
答案 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?
等问题