Vba 使用其他工作簿中的Vlookup时出现问题

Vba 使用其他工作簿中的Vlookup时出现问题,vba,excel,Vba,Excel,我打算使一些工作或多或少自动化,为此我考虑使用Excel VBA。基本上,我需要一个单独的工作簿来从一些不同的工作簿中获取数据 为此,我尝试过: Dim openWb As Workbook Dim openWs As Worksheet Path = Dir("PathToFile\File.xlsx") filepath = "PathToFile" Set openWb = Workbooks.Open(filepath & Path) Set openWs = openWb.

我打算使一些工作或多或少自动化,为此我考虑使用Excel VBA。基本上,我需要一个单独的工作簿来从一些不同的工作簿中获取数据

为此,我尝试过:

Dim openWb As Workbook
Dim openWs As Worksheet

Path = Dir("PathToFile\File.xlsx")
filepath = "PathToFile"

Set openWb = Workbooks.Open(filepath & Path)
Set openWs = openWb.Sheets("Sheet1")

currentwb.Sheets("Sheet2").Cells.(2, 20).Value = openWs.VLOOKUP("John",openWs.Range("A1:S30"), openWs.Match("Age", openWs.Range(A1:S1))
我想要实现的基本上是从对应于“John”的行和对应于“Age”的列中获取一个值。我使用的匹配范围相当大(而不仅仅是一列),以避免出现其他人修改文件会导致任何问题的情况

这给了我行上的语法错误:

Value = openWs.VLOOKUP("John",openWs.Range("A1:S30"), openWs.Match("Age", openWs.Range(A1:S1))
我假设这与我如何在VLookUp参数中使用“openWs”等有关。有人能指出我哪里想错了吗

我使用Path和filepath作为变量,因为程序以后每个月都会有一个新路径和一个新文件路径,这是我所知道的实现这一点的最好方法(基本上,路径和文件路径由月份名称和年份名称组成,我根据今天的日期对其进行拼写)

将Match和VLOOKUP前面的所有“openWs”替换为“Application”,使其内容如下:

Value = Application.VLOOKUP("John",openWs.Range("A1:S30"), Application.Match("Age", openWs.Range("A1:S1")))

您需要在
vlookup
之前添加一个
worksheetfunction
,但我建议查看
find
。用户可能还希望明确设置
Match
函数中的最后一个参数。请检查键入错误,因为VBE中似乎存在编译器错误。@devn Trowbridge是否可以是~Match(“Age”,openWs.Range(“A1:S1”)~即~A1:S1~要用~”括起来~