| 
    
     |  | エクセルVBAを勉強しはじめて間もない者です。 セミナーを受講して、自分でプログラムをしていますが、
 エラーで困っています。
 
 過去の書き込みも見てみたのですが、よく分からなかったので新規投稿させて頂きます。
 
 どうぞよろしくお願い致します。
 
 
 開発環境
 Windows XP
 Excel 2007
 
 別のブックのデータをvlookupを使って引っ張ってきたいのですが、
 すべてのセルで「0」が表示されてしまいます。
 
 売上の実績データファイルがあります。
 商品コード毎に売上の実績が記載されています。
 そのデータに、プロダクトマスターから商品コードをキーにして定価の情報を紐づけたいと言うのがゴールです。
 
 実績ファイルの3番目のシートのD列に商品コードが記載されています。
 F列に数量が既に記載済
 H列に定価を転記して、最終的にI列に数量×定価で定価での売上金額を記載したいのです。
 
 
 On Error Resume Nextを使わないと「型が一致しません」というコンパイルエラーになります。
 
 参照するプロダクトマスターの行数は増えていきますので、変数を使っています。
 この変数はうまく機能しているようです。
 
 どうぞ宜しくお願い致します。
 
 
 'ファイルパス
 Dim filePath As String
 filePath = ThisWorkbook.Path & "\pm.xls"
 
 'Excelブックオブジェクト
 Dim book As Workbook
 Set book = Workbooks.Open(filePath) '他Excelブックを開く
 
 'レコードの行数を取得する pm側
 Dim rowCountpm As Long
 rowCountpm = book.Sheets(1).Range("A2").End(xlDown).Row
 
 'レコードの行数を取得する Main側
 Dim rowCountmain As Long
 rowCountmain = ThisWorkbook.Sheets(3).Range("A2").End(xlDown).Row
 
 '1レコードずつ読み込む
 Dim loopCount As Long
 For loopCount = 2 To rowCountmain
 
 '各フィールド
 Dim TEIKAJISSEKI As Long
 Dim UNIT As Long
 Dim TEIKA As Long
 
 ‘定価を紐づける
 With ThisWorkbook.Sheets(3)
 
 On Error Resume Next
 
 TEIKA = Application.WorksheetFunction.VLookup(.Cells("D",loopCount), book.Sheets(1).Range(book.Sheets(1).Cells("A2"), book.Sheets(1).Cells("V", rowCountpm)), 22, False)
 
 On Error GoTo 0
 
 .Range("H" & loopCount).Value = TEIKA
 
 ‘定価実績の計算
 UNIT = .Range("F" & loopCount).Value
 
 TEIKAJISSEKI = UNIT * TEIKA
 
 .Range("I" & loopCount).Value = TEIKAJISSEKI
 
 End With
 
 Next
 
 'Excelブックを閉じる
 book.Close
 
 |  |