问题:我需要在已关闭的工作簿中搜索特定值,并返回匹配字符串的行号,或者更优选地返回带有匹配字符串的行号的值。
我正在尝试使用ExecuteExcel4Macro
函数,我的代码可以在下面找到。
Private Function GetInfoFromClosedFile2(ByVal wbPath As String, ByVal wbName As String, ByVal wsName As String, ByVal colNum As Integer, ByVal searchString As String) As Variant
Dim arg As String
GetInfoFromClosedFile2 = vbNullString
If Right(wbPath, 1) <> "\" Then wbPath = wbPath & "\"
If Dir(wbPath & wbName) = vbNullString Then Exit Function
arg = "'" & wbPath & "[" & wbName & "]" & wsName & "'!" & Worksheets(wsName).Columns(colNum).Find(What:=searchString).Address(True, True, xlR1C1)
'On Error Resume Next
GetInfoFromClosedFile2 = ExecuteExcel4Macro(arg)
End Function
我在arg =
行
答案 0 :(得分:0)
我相信你所要求的实际上可以在没有VBA的情况下完成。您可以在公式栏中编写索引(匹配)函数,只要正确引用工作簿,就可以搜索已关闭的工作簿。
您可以通过在编写公式时同时打开两个工作簿,然后关闭要引用的工作簿来实现此目的。 Excel应保留公式中的文件位置,此时它将成为数据连接。