我在Excel vba中工作,想要读取VLookup公式的结果 .
当我将公式本身插入单元格时......
Range(Cells(1, 1), Cells(1, 1)).FormulaR1C1 = "=VLookup(" & ent & ", " & MyName & ", " & fc & ", FALSE)"
一切正常但是当我尝试读取相同的公式并将结果保存到变量中时......
MyResult=Application.WorksheetFunction.VLookup(ent, MyName , fc, False)
...,id不起作用并报告错误号 . 1004 .
有任何想法吗?只是为了澄清,这些是公式的参数:范围是用另一个工作簿中的名称定义的 . 在“A1”单元格中插入公式时,这不是问题 .
et = 4529
ep = 1
fc = 3
ent = 9992
MyRoute = "C:\WORK\MyEstates\"
MyBook = MyRoute + CStr(et) + "\" + CStr(et) + "-data.xlsx"
MyName = "'" + MyBook + "'!D_" + CStr(ep)
1 回答
Application.WorksheetFunction.VLookup
需要一个范围作为第二个参数 . 它不知道要查看哪个工作表或单元格 .这就是你所说的:
尝试更像的东西:
如果需要使用变量,请确保将其声明为 Range .
(顺便说一句,这是谷歌搜索的第一次打击 . ),
编辑:
后来我意识到你要做的是什么! :)
你分享了很多信息,但它是如此复杂,我无法理解问题是什么,奇怪的语法(如
Range(Cells(1, 1), Cells(1, 1))
)和开放式描述(如Everything works
)使它更加混乱 .在你得到答案之前, I might as well rewrite the question for you ,这样你就可以更好地了解下次如何让每个人都更轻松 . 重写你的问题花了我一半的时间来理解它,如果你刚刚用Google搜索错误,你会回答你的问题 yourself .
.
我想这是我可以用示例问题,因为添加几个链接的过程将回答问题 .
这是你的修复:
请仔细阅读How to create a Minimal, Complete, and Verifiable example和How to Ask . 谢谢你的时间!