我有一个名为" C:\ myfile.xlsm"的Excel工作簿。
它有一个名为" sales"。
的工作表在另一个打开的工作簿中,我试图从C:\ myfile.xlsm工作簿中访问一个单元格值。
(BTW:C:\ myfile.xlsm未打开。)
执行以下操作失败:
temp = Workbooks("C:\myfile.xlsm").Worksheets("sales").Range("C2").Value
我收到此错误,我不知道原因:
运行时错误9
下标超出范围
答案 0 :(得分:0)
这对我有用,希望它对你有帮助吗?
Private Sub stuff()
Dim TemP As String
TemP = "C:\Users\Ashleysaurus\Desktop\doug" & "\" & "Book1.xlsm"
Set TemP2 = Workbooks.Open(TemP)
Temp3 = ActiveWorkbook.Sheets("Sheet1").Range("e1").Value
Debug.Print ; Temp3
End Sub
答案 1 :(得分:0)
你需要打开然后打开文件。
Workbooks.Open FileName:="C:\myfile.xlsm"
您可以使用该文件
temp = Workbooks("myfile.xlsm").Worksheets("sales").Range("C2").Value
如果您只想获取值:
temp = ExecuteExcel4Macro("'C:[myfile.xlsm]Sales'!" & Range("C2").Range("A1").Address(, , xlR1C1))
答案 2 :(得分:0)
使用它:
Set wk = Workbooks.Open("C:\myfile.xlsm")
temp = wk.Sheets("sales").Range("C2").Value
wk.Close
答案 3 :(得分:0)
要从不同的工作簿中获取Cell Value而不打开它,请尝试:
Sub Demo()
Dim Path As String, FileName As String, SheetName As String, CellRange As String
Dim tempStr As String
Path = "C:\"
FileName = "myfile.xlsm"
SheetName = "Sales"
CellRange = Range("C2").Address(, , xlR1C1)
strRef = "'" & Path & "[" & FileName & "]" & SheetName & "'!" & CellRange
Result = ExecuteExcel4Macro(strRef)
End Sub