我的vba代码中有下面一行
[A1].FormulaR1C1 = "=IFERROR(VLOOKUP(RC[-4],Rates!A:H,3,FALSE),"""")"运行时,它将在Excel中创建如下内容:
=IFERROR(VLOOKUP(A8,Rates!A:(H),3,FALSE),"")我不知道为什么“H”会出现在括号里。当然公式不起作用。当我移除括号时,它就起作用了。但是,首先如何让VBA正确地创建公式呢?
发布于 2014-10-08 18:50:38
原因其实很简单。一方面你说的是.FormulaR1C1,另一方面你同时使用这两种符号。坚持R1C1或A1
所以试试这个
[A1].FormulaR1C1 = "=IFERROR(VLOOKUP(R[7]C,Rates!C:C[7],3,FALSE),"""")"或
[A1].Formula = "=IFERROR(VLOOKUP(A8,Rates!A:H,3,FALSE),"""")"发布于 2014-10-08 18:40:41
试图用VBA编写VLOOKUP时,由于某种原因,经常会遇到这样的奇怪情况。解决这个问题的最好方法是编写代码来命名范围,然后在VLOOKUP中使用该名称。
ActiveSheet.Names.Add Name:="VLRange", RefersTo:="=Rates!" & Range(Cells(1, 1), Cells(lastrow, 1)).Address那么您的公式编写代码是
[A1].FormulaR1C1 = "=IFERROR(VLOOKUP(RC[-4],VLRange,3,FALSE),"""")"https://stackoverflow.com/questions/26263765
复制相似问题