【问题标题】:Using Excel VBA to insert Vlookup formula使用 Excel VBA 插入 Vlookup 公式
【发布时间】:2015-02-21 00:55:31
【问题描述】:

我在使用 VBA 在列中插入 vlookup 公式时遇到问题。我收到“运行时错误'1004':应用程序定义或对象定义错误”。我怀疑这可能是“双引号”的问题。我已经对此进行了一些研究,但是当需要双引号以及不需要双引号时,我仍然无法理解。另外,我使用的是动态日期变量 (TodaysDate),它是由 =Format(Date, "mm-dd-yyyy") 确定的字符串。以下是不起作用的代码行:

Range("Y2:Y" & RowCount).Formula = "=IF(ISNA(VLOOKUP(X2,""'[PHO """ & TodaysDate & """.xlsx]Detail'!$C:$D""),1,FALSE)),""Yes"",""No"")"

【问题讨论】:

  • 在调试窗口中打印您试图放入公式中的字符串。是你想要的吗?工作簿的名称对吗?
  • 我该如何使用调试窗口?对不起,我是一个相对的菜鸟。
  • 确保即时窗口已打开 (Ctrl-G),然后在引发错误的行之前添加 Debug.Print "=IF(..."。它将在即时窗口中打印出来
  • 我想你在!$C:$D""),1,FALSE 之后多了一个)。也许我错了:)
  • 杜比森,你是对的。你对额外的括号是正确的。告诉你姐姐,你是对的....."=IF(ISNA(VLOOKUP(X2,'[PHO " & TodaysDate & ".xlsx]Detail'!$C:$D,1,FALSE)),""No"",""Yes"")"

标签: excel vlookup vba


【解决方案1】:

上周我做了同样的事情,我发现将文件名(在我的情况下是位置)分配给一个变量并将其放入 vlookup 中而不是将其全部放入其中更容易。例如,我做了以下事情并克服了这个障碍。

filename1 = "C:\Users\me\Documents\Custom Office Templates\DataValidation.xlsx" & "Sheet1'!$A:$C"

ActiveWorkbook.Worksheets("PipelineData").Range("I2:I" & lrow) = "=VLOOKUP(trim(A2),'" & filename1 & " ,2,FALSE)"

所以你的可能是

 filename = "Pho" & TodaysDate & ".xlsx" & "Detail'!$C$D"
 Range("Y2:Y" & RowCount).Formula = "=IF(ISNA(VLOOKUP(X2,'" & filename & "),1,FALSE)),""Yes"",""No"")"

不知道这是否算作一个答案,但它可能会帮助你。

【讨论】:

  • 感谢邦格尔先生的建议。我以后会用它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多