ExcelVBA中GetValue函数如何解决运行-时间错误?
How Do I Resolve Run-Time Error With GetValue Function in Excel VBA?
我正在尝试编写一个宏,以特定顺序将数据从多个外部工作簿复制到单个工作簿。我不打算让每个工作簿都打开以便我的宏工作,因为那将是一个令人发指的打开 spreadsheets 的数量,所以我进行了 Google 搜索并发现了这个漂亮的功能,获取值函数:
http://spreadsheetpage.com/index.php/tip/a_vba_function_to_get_a_value_from_a_closed_file/
只是为了让自己为其余的代码做好准备,我编写了一个代码,该代码应该只是从外部工作簿的一个单元格中获取单个数据,并将其放入工作簿的单个单元格中sheet 我目前在。在当前工作sheet 中,我将要访问的工作簿的文件路径粘贴到 B 列中,并将文件名粘贴到 A 列中,因为有这么多,我希望能够在一个代码中访问每个。这是代码:
Sub Gather_Data()
Dim p As String
Dim f As String
Dim s As String
Dim a As String
p = Range("B7").Value
f = Range("A7").Value
s = Sheet5
a = D7
Cells(10, 10).Value = GetValue(p, f, s, a).Value
End Sub
Private Function GetValue(path, file, sheet, ref)
' Retrieves a value from a closed workbook
Dim arg As String
' Make sure the file exists
If Right(path, 1) <> "\" Then path = path & "\"
If Dir(path & file) = "" Then
GetValue = "File Not Found"
Exit Function
End If
' Create the argument
arg = "'" & path & "[" & file & "]" & sheet & "'!" & _
Range(ref).Range("A1").Address(, , xlR1C1)
' Execute an XLM macro
GetValue = ExecuteExcel4Macro(arg)
End Function
我没有发现代码有任何问题,但每当我尝试 运行 它时,我都会收到一个 运行 时间错误,指出 "Method 'Range' of object '_Global' failed"。老实说,我不知道这意味着什么,运行调试器突出显示了
arg = "'" & path & "[" & file & "]" & sheet & "'!" & _
Range(ref).Range("A1").Address(, , xlR1C1)
区,我什至没有写。如果有人有使用此功能的经验或知道如何解决此错误,将不胜感激您的意见。提前致谢!
您的变量被声明为字符串,因此尝试更改您的代码:
s = Sheet5
a = D7
为此:
s = "Sheet5"
a = "D7"
我正在尝试编写一个宏,以特定顺序将数据从多个外部工作簿复制到单个工作簿。我不打算让每个工作簿都打开以便我的宏工作,因为那将是一个令人发指的打开 spreadsheets 的数量,所以我进行了 Google 搜索并发现了这个漂亮的功能,获取值函数: http://spreadsheetpage.com/index.php/tip/a_vba_function_to_get_a_value_from_a_closed_file/
只是为了让自己为其余的代码做好准备,我编写了一个代码,该代码应该只是从外部工作簿的一个单元格中获取单个数据,并将其放入工作簿的单个单元格中sheet 我目前在。在当前工作sheet 中,我将要访问的工作簿的文件路径粘贴到 B 列中,并将文件名粘贴到 A 列中,因为有这么多,我希望能够在一个代码中访问每个。这是代码:
Sub Gather_Data()
Dim p As String
Dim f As String
Dim s As String
Dim a As String
p = Range("B7").Value
f = Range("A7").Value
s = Sheet5
a = D7
Cells(10, 10).Value = GetValue(p, f, s, a).Value
End Sub
Private Function GetValue(path, file, sheet, ref)
' Retrieves a value from a closed workbook
Dim arg As String
' Make sure the file exists
If Right(path, 1) <> "\" Then path = path & "\"
If Dir(path & file) = "" Then
GetValue = "File Not Found"
Exit Function
End If
' Create the argument
arg = "'" & path & "[" & file & "]" & sheet & "'!" & _
Range(ref).Range("A1").Address(, , xlR1C1)
' Execute an XLM macro
GetValue = ExecuteExcel4Macro(arg)
End Function
我没有发现代码有任何问题,但每当我尝试 运行 它时,我都会收到一个 运行 时间错误,指出 "Method 'Range' of object '_Global' failed"。老实说,我不知道这意味着什么,运行调试器突出显示了
arg = "'" & path & "[" & file & "]" & sheet & "'!" & _
Range(ref).Range("A1").Address(, , xlR1C1)
区,我什至没有写。如果有人有使用此功能的经验或知道如何解决此错误,将不胜感激您的意见。提前致谢!
您的变量被声明为字符串,因此尝试更改您的代码:
s = Sheet5
a = D7
为此:
s = "Sheet5"
a = "D7"