ここから本文です

エクセルVBAについて。 下記の動作のコードをご教示下さい。 エクセルファイル...

jzd********さん

2019/6/1608:10:14

エクセルVBAについて。
下記の動作のコードをご教示下さい。

エクセルファイル①と②が、あります。

エクセルファイル①(参照するファイル)
lotNo① ー lotNo②
AH列ー AI列

エクセ

ルファイル②(マクロを実行するファイル)
lotNo①ー lotNo②
L列 ー H列

マクロ実行でL列(値)最終入力行の一つ下のH列(lotNo②)とAL列(lotNo②)と紐付く値(.AHの値)を、L列最終入力の下に転記。

下記の条件を満たしたい

1.ファイル②では1行空白列があることがあります。(2行はありません)したがってL列の最終入力の一つ下のH列が空白の場合はもう一つ下の行を読みにいくとしたいです。
さらにそこが空白ならメッセージボックス(lotNoがありません)
H列に数値がありファイル①から検索結果が引っ張ってこれなかった場合はメッセージボックスで表示。(lotNo-H列(値番号)が参照できませんでした)

2.ファイル①のAH列(lotNo②)で同一の値が2つ連続するケースがあります。(3つはありません)このときは2つ同時に転記させたい。
例えば、
ファイル②
ーーーーH列ーL列
1001行ー104ー100
1002行ー105
1003行ー106

ファイル①
ーーーーAL列ーAH列
2000行ー104ー100
2001行ー105ー101
2002行ー106ー101

このような場合、通常105の行の101が紐付けされ転記されれが、その下も、101と同一の、値の為下記のような結果にしたい。
ちなみにこの101は1002.1003行以外に、存在することはありません。
ーーーーH列ーL列
1001行ー104ー100
1002行ー105ー101
1003行ー106ー101

よろしくお願いします。

閲覧数:
51
回答数:
1
お礼:
25枚

違反報告

ベストアンサーに選ばれた回答

kky********さん

2019/6/1608:47:02

ファイル①と②とは別のブックにマクロを入れて実行するコードです。
(ファイル②に入れる変更も可能です)
2つのファイルは先頭でフルパスで指定して下さい。

Sub Sample()
Const fn1 As String = "C:\Data\Book1.xlsx"
Const fn2 As String = "C:\Data\Book2.xlsx"
Dim wb1 As Workbook, wb2 As Workbook
Dim sh As Worksheet
Dim rng As Range
Dim i As Long
Dim j As Variant
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set wb1 = Workbooks.Open(fn1)
Set wb2 = Workbooks.Open(fn2)
Set sh = wb1.Worksheets(1)
With sh
Set rng = .Range("AI1:AI" & .Cells(Rows.Count, "AI").End(xlUp).Row)
End With
With wb2.Worksheets(1)
For i = .Cells(Rows.Count, "L").End(xlUp).Row + 1 To .Cells(Rows.Count, "H").End(xlUp).Row
j = Application.Match(.Range("H" & i), rng, 0)
If IsError(j) Then
MsgBox "lotNo-" & .Range("H" & i) & " が参照できませんでした"
wb1.Close
Exit Sub
Else
.Range("L" & i) = sh.Range("AH" & j)
End If
Next i
End With
wb1.Close
wb2.Close SaveChanges:=True
Application.DisplayAlerts = True
Application.ScreenUpdating = True
MsgBox "処理終了"
End Sub

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

質問した人からのコメント

2019/6/19 08:38:30

返信遅くなり、申し訳ありません。
正しく動作いたしました。
ありがとうございました。

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる