vba - VLOOKUP 公式将撇号放在文本前面并生成运行时错误“1004”
问题描述
我正在编写一个将一些公式插入列数组的宏。我正在尝试自动化每周的流程,因此输入文件是可变的,并且是通过msoFileDiaglogFilePicker
应用程序选择的。
Dim wb_Final As Workbook, nameFinal As String
Set wb_Final = Workbooks.Open(Filename:=Final_Directory)
nameFinal = wb_Final.Name
Dim wb_Summary As Workbook, nameSummary As String
Set wb_Summary = Workbooks.Open(Filename:=Summary_Directory)
nameSummary = wb_Summary.Name
wb_Summary.Sheets("Sheet 1").Activate
With Sheets("Sheet 1")
.Range("AT4:AT5000").Formula = "=IF(OR(AX1=""Open"",AX1=""Won"",AX1=""Won - Pending""),""Yes"",""No"")"
.Range("AU4:AU5000").Formula = "=VLOOKUP(W:W,LOVs!H:I,2,FALSE)"
.Range("AV4:AV5000").Formula = "=IF(IFERROR(VLOOKUP($A:$A,'[" & nameFinal & "]DATA'!$A:$AK,34,FALSE),0)=0,"",VLOOKUP($A:$A,'[" & nameFinal & "]DATA'!$A:$AK,34,FALSE))"
.Range("AW4:AW5000").Formula = "=IF(IFERROR(VLOOKUP($AV:$AV,'[" & nameFinal & "]DATA'!$AH:$CX,48,FALSE),0)=0,"",VLOOKUP($AV:$AV,'[" & nameFinal & "]DATA'!$AH:$CX,48,FALSE))"
'....More formulas similar to above
End With
前两个公式被放入单元格中并毫无问题地计算。
第三个公式作为文本放入单元格中,在 Excel 中它的前面带有撇号。(即'=IF(IFERROR(VLOOKUP...
)
第四个公式生成运行时错误“1004”
我尝试了所有不同的公式类型:
.Formula
.FormulaR1C1
.FormulaLocal
.FormulaR1C1Local
并且仍然收到相同的错误。
我想我遇到了与本文所述类似的问题,但如果我可以使用该Application.Vlookup
函数而不重新定义当前 VLOOKUP 函数中的所有数组和列引用(这将花费很长时间),我就不会。
任何帮助将非常感激
解决方案
不能在公式中使用撇号;而是使用引号,在您的情况下,您需要像在之前的公式中那样转义它,例如:
VLOOKUP($A:$A,""[" & nameFinal & "]DATA""!$A:$AK,34,FALSE)
推荐阅读
- excel - 在特定单词 vba 之前插入换行符
- javascript - Ant 设计在上传整个文件夹时仅显示允许的项目
- regex - 使用模式中的字段值与 PostgreSQL 中的另一个字段进行正则表达式匹配
- oauth-2.0 - Github 的 ServiceStack OAuth 问题
- java - 创建 Queue 类并从头到尾打印里面的元素
- sql-server - 将 MS-Access 迁移到 Azure 上的 SQL Server
- java - 如果我们使用令牌,我们是否需要会话
- python-3.x - 将包中的函数应用于Python中的一列
- java - Selenium Webdriver: Compare Driver and Browser Versions
- python - need help figuting out what i did wrong