您可以同时拥有工作簿和字符串的变量吗?

时间:2019-03-23 09:10:14

标签: excel vba

我无法使用VLOOKUP函数搜索作为变量的wookbook。一种按日期更改名称的方法。

所以我是VBA和编码方面的新手。根据日期拥有一个可变的工作簿。对此进行VLOOKUP似乎是一个问题。通过在线阅读,似乎可以将其作为字符串完成,但它已经是一本工作簿。

因此请记住,我已经将wkbk设置为一个变量(我已对该网站进行了裁剪,该变量在名为dd.mm.yyyy.xlsx的工作簿中搜索从当前日期开始倒数的先前日期,并且部分工作正常)。

Dim wkbk As Workbook

ActiveCell.FormulaR1C1 = _
     "=IF(ISBLANK(RC[-9]),"" "",VLOOKUP(RC[-9],'" & wkbk & "easy_form_response_list'!C1:C12,10))"

我期望的是对工作簿和工作表的查找-我得到的是运行时错误'438'。对象不支持此属性或方法。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

您需要一个字符串,该字符串是外部工作簿的

的格式正确且标点正确的地址
Dim wkbk As Workbook, addr as string

SET wkbk = WORKBOOKS("THE_SOURCE_WORKBOOK.XLSX")

addr = wkbk.worksheets("easy_form_response_list").Range("A:L").Address(ReferenceStyle:=xlR1C1, External:=true)
ActiveCell.FormulaR1C1 = _
   "=IF(ISBLANK(RC[-9]), text(,), VLOOKUP(RC[-9], " & addr & ", 10))"

您确定不需要吗?

ActiveCell.FormulaR1C1 = _
   "=IF(ISBLANK(RC[-9]), text(,), VLOOKUP(RC[-9], " & addr & ", 10, FALSE))"

如果省略可选的第四个参数,则数据需要按升序排序。