2016-10-18 11 views
0

INDEX MATCHを使用して別のブックからデータを自動入力できるマクロを作成しようとしています。私は別の数式のための正確なコードを使用して、それが動作しますが、私は単に以下のコードで式を置き換えると、それは私に "アプリケーション定義またはオブジェクト定義のエラー"を与えるアプリケーション定義またはオブジェクト定義エラーを持つIFERROR 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 

問題を特定するための助けがあれば幸いです。そして私は長い公式について謝罪します、私は_を使ってそれを包み込もうとしましたが、それはうまくいきませんでした。

EDIT:

私は

=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を使用して、必要な値を取得します。

+0

IITは動作します "の代わりに、最後のiferrroで" 簡単な使用 """ である。式= ...'?その場合はそれを行い、埋め込み関数insetadを使用します。あなたがここでやったようにしようとすると、私はそれが動作するかどうかはわかりません。 – Andreas

+0

以下のように記入してください: 'range(" H2:H "&LR).filldown' – Andreas

+0

こんにちは、すばらしい返信をありがとう。私は 'range(" H2 ")。formula ='を実行しようとしましたが、式を強調表示しながら同じ "アプリケーション定義またはオブジェクト定義のエラー"を表示します。 別のマクロで異なる数式で完全に同じコードを使用したため、コード全体に問題はありません。 –

答えて

0

こんにちは修正はあなたが唯一の `範囲( "H2")を行う場合は、 " "=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)),"""")))"

+0

ああ。じぶんの。神。私はそれを試みました。解決策はとてもシンプルで、私を愚かに感じさせました。ありがとう! –

+0

Visual Basicウィンドウに収まるように数式をラップする方法があるかどうかもわかりますか?私は '_'を試しましたが、式の途中でそれを使うことはできませんでした –

+0

@Andrewあなたは' '&_" 'で数式をエスケープする必要があると思います。私は通常それをそのまま残す。 – Andreas

関連する問題