【发布时间】:2016-10-18 03:48:04
【问题描述】:
我正在尝试创建一个宏,允许我使用 INDEX MATCH 自动填充另一个工作簿中的数据。我已经为另一个公式使用了确切的代码并且它可以工作,但是当我在下面的代码中简单地替换公式时,它给了我一个“应用程序定义或对象定义的错误”
下面是我的代码。有问题的公式在.formula 之后开始。剩下的代码可供我自动填充空单元格,并且它已经与另一个宏一起使用。
Sub FillOrderType()
Dim LR As Long
LR = ActiveSheet.UsedRange.Find("*", SearchDirection:=xlPrevious,
SearchOrder:=xlByRows).Row
With Range("H2:H" & LR)
With .SpecialCells(xlCellTypeBlanks)
.Formula = "=IFERROR(INDEX('C:\Users\wwxuan\Desktop\KPI OUTBOUND 23.08.16\[KPI Outbound - ( Aug ) Rev5.xlsx]EXP'!N:N, MATCH(G:G,'C:\Users\wwxuan\Desktop\KPI OUTBOUND 23.08.16\[KPI Outbound - ( Aug ) Rev5.xlsx]EXP'!L:L,0)), IFERROR(INDEX('C:\Users\wwxuan\Desktop\KPI OUTBOUND 23.08.16\[KPI Outbound - ( Aug ) Rev5.xlsx]AOG'!N:N,MATCH(G:G,'C:\Users\wwxuan\Desktop\KPI OUTBOUND 23.08.16\[KPI Outbound - ( Aug ) Rev5.xlsx]AOG'!L:L,0)),IFERROR(INDEX('C:\Users\wwxuan\Desktop\KPI OUTBOUND 23.08.16\[KPI Outbound - ( Aug ) Rev5.xlsx]SCHED'!M:M,MATCH(G:G,'C:\Users\wwxuan\Desktop\KPI OUTBOUND 23.08.16\[KPI Outbound - ( Aug ) Rev5.xlsx]SCHED'!K:K,0)),"")))"
End With
.Value = .Value
End With
End Sub
任何帮助确定问题将不胜感激。对于公式太长,我深表歉意,我尝试使用 _ 将其包装起来,但它不起作用。
编辑:
我认为问题仅在于公式本身,因为每当我尝试调试时它都会突出显示
=IFERROR(INDEX('C:\Users\wwxuan\Desktop\KPI OUTBOUND 23.08.16\[KPI Outbound - ( Aug ) Rev5.xlsx]EXP'!N:N, MATCH(G:G,'C:\Users\wwxuan\Desktop\KPI OUTBOUND 23.08.16\[KPI Outbound - ( Aug ) Rev5.xlsx]EXP'!L:L,0)), IFERROR(INDEX('C:\Users\wwxuan\Desktop\KPI OUTBOUND 23.08.16\[KPI Outbound - ( Aug ) Rev5.xlsx]AOG'!N:N,MATCH(G:G,'C:\Users\wwxuan\Desktop\KPI OUTBOUND 23.08.16\[KPI Outbound - ( Aug ) Rev5.xlsx]AOG'!L:L,0)),IFERROR(INDEX('C:\Users\wwxuan\Desktop\KPI OUTBOUND 23.08.16\[KPI Outbound - ( Aug ) Rev5.xlsx]SCHED'!M:M,MATCH(G:G,'C:\Users\wwxuan\Desktop\KPI OUTBOUND 23.08.16\[KPI Outbound - ( Aug ) Rev5.xlsx]SCHED'!K:K,0)),"")))
但我对如何将其转换为 VBA 代码一无所知。在公式中,我想要的值存在于另一个工作簿中的不同工作表中,我使用 IFERROR 和 INDEX MATCH 来获取我想要的值。
【问题讨论】:
-
如果你只做
range("H2").formula = ...,它是否有效?在这种情况下,这样做并使用填充功能 insetad。当您尝试像这里那样做时,我不确定它是否有效。 -
填写如下:
range("H2:H" & LR).filldown -
您好,感谢您的快速回复。我尝试过
range("H2").formula =,它在突出显示公式的同时给了我相同的“应用程序定义或对象定义错误”。整个代码本身没有问题,因为我在另一个宏上使用了完全相同的代码和不同的公式,它可以工作 -
你能在单元格中手动插入相同的公式吗?
-
是的,我可以。这就是为什么我认为问题出在公式上。
标签: excel vba formula autofill