|
エクセル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
|
|