首页 文章

Vba和VLookup:插入公式vs读取公式的结果

提问于
浏览
0

我在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 回答

  • 3

    Application.WorksheetFunction.VLookup 需要一个范围作为第二个参数 . 它不知道要查看哪个工作表或单元格 .

    这就是你所说的:

    Application.WorksheetFunction.VLookup(9992, "'C:\WORK\MyEstates\4529\4529-data.xlsx'!D_1", 3, false)
    

    尝试更像的东西:

    Application.WorksheetFunction.VLookup (9992, worksheets("Sheet1").range("A1:b10"),3,FALSE)
    

    如果需要使用变量,请确保将其声明为 Range .

    (顺便说一句,这是谷歌搜索的第一次打击 . ),


    编辑:

    后来我意识到你要做的是什么! :)

    你分享了很多信息,但它是如此复杂,我无法理解问题是什么,奇怪的语法(如 Range(Cells(1, 1), Cells(1, 1)) )和开放式描述(如 Everything works )使它更加混乱 .

    在你得到答案之前, I might as well rewrite the question for you ,这样你就可以更好地了解下次如何让每个人都更轻松 . 重写你的问题花了我一半的时间来理解它,如果你刚刚用Google搜索错误,你会回答你的问题 yourself .



    WorksheetFunction.VLookup上的错误1004到外部命名范围嗨!我有一个VLookup公式,当我使用此VBA将其分配给一个单元格时,它返回另一个工作簿中命名范围的预期结果:Range(“A1”) . FormulaR1C1 = _
    “= VLookup(9992,'* C:\ myPath \ fileName.xlsx'!namedRange *,3,FALSE)”
    我无法使用相同的VLookup公式来使用Application.WorksheetFunction,如下所示:myResult = Application.WorksheetFunction.VLookup _
    (9992,“'C:\ myPath \ fileName.xlsx'!namedRange,3,FALSE)”
    VBA在上面的行上停止并显示以下错误:运行时错误'1004':无法获取WorksheetFunction类的VLookup属性接下来,我查找了错误,并且第一个Google搜索结果是Stack Overflow的现有答案解决我的问题 . 所以我.......



    .

    我想这是我可以用示例问题,因为添加几个链接的过程将回答问题 .

    这是你的修复:

    myResult = Application.WorksheetFunction.VLookup _
        (9992, "'C:\WORK\MyEstates\4529\4529-data.xlsx'!D_1", 3, false)
    

    请仔细阅读How to create a Minimal, Complete, and Verifiable exampleHow to Ask . 谢谢你的时间!

相关问题