用excelvba插入Vlookup公式

用excelvba插入Vlookup公式,excel,vlookup,vba,Excel,Vlookup,Vba,我在使用VBA在列中插入vlookup公式时遇到问题。我得到一个运行时错误“1004”:应用程序定义的或对象定义的错误。我怀疑这可能是双引号的问题。我对此做了一些研究,但仍然无法在需要或不需要双引号的情况下对其进行思考。另外,我使用了一个动态日期变量TodaysDate,一个由=FormatDate,mm-dd-yyy确定的字符串。下面是不起作用的代码行: Range("Y2:Y" & RowCount).Formula = "=IF(ISNA(VLOOKUP(X2,""'[PHO ""

我在使用VBA在列中插入vlookup公式时遇到问题。我得到一个运行时错误“1004”:应用程序定义的或对象定义的错误。我怀疑这可能是双引号的问题。我对此做了一些研究,但仍然无法在需要或不需要双引号的情况下对其进行思考。另外,我使用了一个动态日期变量TodaysDate,一个由=FormatDate,mm-dd-yyy确定的字符串。下面是不起作用的代码行:

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

在过去的一周里,我做了同样的事情,我发现将文件名和位置分配给一个变量并将其放入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"")"

不知道这是否算是一个答案,但它可能会帮助您解决问题。

在调试窗口的公式中打印您试图输入的字符串。这是你想要的吗?工作簿的名称正确吗?如何使用调试窗口?对不起,我是一个相对的noob。请确保立即窗口已打开Ctrl-G,然后添加调试。打印=如果。。。在抛出错误的行之前。它会在即时窗口中打印出来,我想你以后还有一个$C:$D,1,错。也许我错了:杜比森,你是对的。关于额外的括号,你是对的。告诉你姐姐,你是对的=IFISNAVLOOKUPX2,“[PHO&TodaysDate&xlsx]细节”$C:$D,1,FALSE,No,Yes谢谢你的建议,Bungle先生。我以后会用的。