Excel 带输入的VBA VlookUp无法获取结果,是代码错误还是数据类型不匹配?
嗨 目前,我正在尝试自动化最耗时的excel文件之一。 显然,VlookUp是个问题 一些背景作为新的VBA开发人员:Excel 带输入的VBA VlookUp无法获取结果,是代码错误还是数据类型不匹配?,excel,vba,input,vlookup,Excel,Vba,Input,Vlookup,嗨 目前,我正在尝试自动化最耗时的excel文件之一。 显然,VlookUp是个问题 一些背景作为新的VBA开发人员: 我使用inputbox获取特定的工作表名称,以便用它更新我所有的vlookups。是的,每隔几周就会发生一次。而且我不能用手工操作,这需要很多时间 长话短说:带求值公式的Vlookup不是获取数据,而是用心爱的#值进行响应!在某些细胞中 当我被这个问题困住的时候,我想还有另一个问题,因为我无法在我的整个范围内得出这个公式。但这可以用范围来解决,比如BS13:BS37020,对
- 我使用inputbox获取特定的工作表名称,以便用它更新我所有的vlookups。是的,每隔几周就会发生一次。而且我不能用手工操作,这需要很多时间
- 长话短说:带求值公式的Vlookup不是获取数据,而是用心爱的#值进行响应!在某些细胞中
- 当我被这个问题困住的时候,我想还有另一个问题,因为我无法在我的整个范围内得出这个公式。但这可以用范围来解决,比如BS13:BS37020,对吗?但这会给Vlookup的第一个参数带来问题,因为它会改变
Dim myValue As Variant
myValue = InputBox("Please enter sheet argument for Vlookup including apostrophe and !")
Worksheets("191207").Range("BS13").Formula = Evaluate("VLOOKUP($C13, """ & myValue & """ $C$2:$CD$92000,14,0)")
' desired vlookup =VLOOKUP($C13,191207!$C$2:$CD$92000,14,0)
公式中的VlookUp与VBA中的VlookUp有何不同?或者,如果我的方法对VlookUp不正确,请提供建议
提前谢谢。这似乎更符合您的要求:
Dim myValue As Variant
myValue = InputBox("Please enter sheet name")
Worksheets("191207").Range("BS13").Formula = _
"=VLOOKUP($C13, '" & myValue & "'!$C$2:$CD$92000,14,0)")
看起来这更像是你想要的:
Dim myValue As Variant
myValue = InputBox("Please enter sheet name")
Worksheets("191207").Range("BS13").Formula = _
"=VLOOKUP($C13, '" & myValue & "'!$C$2:$CD$92000,14,0)")
您能给我们一个您正在输入的示例表名吗?旁注:您正在输入一个通过
评估
获得的值,并且您想作为公式
输入到您的范围
…所以让我问您,您真的想输入公式吗?或者您只是想要返回的值。请注意,这里有VBA函数。您好,@BigBen My bad,示例工作表名称:is 191107或191115谢谢JvdV,我只需要这些函数来引用某些工作表,因为它们将发生更改。你能详细说明你的想法吗?应该是工作表(“191207”)。评估(…)
-指定工作表以确保公式在正确的上下文中评估。@BigBen你是个天才。我呢?瞎子,没看见那个人来了。所以,它应该是这样的:Worksheets(“191207”).Range(“BS13”).Formula=Evaluate.Worksheets(“myValue”),(“VLOOKUP($C13,$C$2:$CD$92000,14,0)”)
Edit:显然不是,不是这样,但我知道了方向。谢谢您给我们一个您正在输入的示例表名称?旁注:您正在输入一个通过评估
获得的值,并且您想作为公式
输入到您的范围
…所以我问您,您真的想输入公式吗?或者您只是想要返回的值。请注意,这里有VBA函数。您好,@BigBen My bad,示例工作表名称:is 191107或191115谢谢JvdV,我只需要这些函数来引用某些工作表,因为它们将发生更改。你能详细说明你的想法吗?应该是工作表(“191207”)。评估(…)
-指定工作表以确保公式在正确的上下文中评估。@BigBen你是个天才。我呢?瞎子,没看见那个人来了。所以,它应该是这样的:Worksheets(“191207”).Range(“BS13”).Formula=Evaluate.Worksheets(“myValue”),(“VLOOKUP($C13,$C$2:$CD$92000,14,0)”)
Edit:显然不是,不是这样,但我知道了方向。谢谢,有时候最简单的解决方案就是最好的。不知怎么的,我错过了那个。谢谢好吧,有时候最简单的解决方案就是最好的。不知怎么的,我错过了那个。非常感谢。