2017-01-17 9 views
0

インデックス一致式を列AXの下に7列目からドラッグすると想定される次のコードがあります。vba挿入インデックス一致式ダウンコラムが機能しない

Sub Estimated() 
Dim lastRow As Long 

Application.DisplayAlerts = False 
Application.EnableEvents = False 
Application.ScreenUpdating = False 


If IsFileOpen("\\gb-ss04\001_DATA\WH DISPO\(5) WH SHARED DRIVE\(21) WAREHOUSE RECEIVINGS\Order Checker.xlsm") Then 

Else 

Workbooks.Open "\\gb-ss04\001_DATA\WH DISPO\(5) WH SHARED DRIVE\(21) WAREHOUSE RECEIVINGS\Order Checker.xlsm" 

End If 

lastRow = ThisWorkbook.Sheets(1).Range("AX" & Rows.Count).End(xlUp).Row 

ThisWorkbook.Sheets(1).Range("AX7").FormulaArray = "=IFERROR(INDEX(Data!$B:$B,MATCH(1,(Home!$H10=Data!$C:$C)*(Home!$I10=Data!$D:$D)*(IF(Home!$J10<55,Home!$J10,WEEKNUM(Home!$J10,21))=Data!$F:$F),0)),""No Po Found"")" 
ThisWorkbook.Sheets(1).Range("AX7").AutoFill ActiveSheet.Range("AX7:AX" & lastRow) 

Application.DisplayAlerts = True 
Application.EnableEvents = True 
Application.ScreenUpdating = True 

End Sub 

私は、この行にエラーを取得しています:

ThisWorkbook.Sheets(1).Range("AX7").AutoFill ActiveSheet.Range("AX7:AX" & lastRow) 

自動範囲の方法を埋めるに失敗しました。

私にこれを行う正しい方法を教えてもらえますか? 他のワークブックを開く必要があるかどうかわかりません。誰かが明確にしてください。私は他のワークブックを開封しております

唯一の理由は、私のインデックスマッチ式で目的を参照するためである - ので、ワークブックがどこにあるか、それは混乱をdoesntなど

+0

LastRowの値は? = <7の場合、オートフィルは失敗します。 –

+0

@MarkFitzgerald空白です – user7415328

答えて

0

あなたが埋めるためにしようとしている列にlastRowをテストする必要がありますすでに充填されている列(ここではAに設定されています)に表示されます。

Sub Estimated() 
Dim lastRow As Long 

Application.DisplayAlerts = False 
Application.EnableEvents = False 
Application.ScreenUpdating = False 


If IsFileOpen("\\gb-ss04\001_DATA\WH DISPO\(5) WH SHARED DRIVE\(21) WAREHOUSE RECEIVINGS\Order Checker.xlsm") Then 
Else 
    Workbooks.Open "\\gb-ss04\001_DATA\WH DISPO\(5) WH SHARED DRIVE\(21) WAREHOUSE RECEIVINGS\Order Checker.xlsm" 
End If 

lastRow = ThisWorkbook.Sheets(1).Range("A" & Rows.Count).End(xlUp).Row 

ThisWorkbook.Sheets(1).Range("AX7").FormulaArray = "=IFERROR(INDEX(Data!$B:$B,MATCH(1,(Home!$H10=Data!$C:$C)*(Home!$I10=Data!$D:$D)*(IF(Home!$J10<55,Home!$J10,WEEKNUM(Home!$J10,21))=Data!$F:$F),0)),""No Po Found"")" 
ThisWorkbook.Sheets(1).Range("AX7").AutoFill ActiveSheet.Range("AX7:AX" & lastRow) 

Application.DisplayAlerts = True 
Application.EnableEvents = True 
Application.ScreenUpdating = True 

End Sub 
関連する問題