ここから本文です

VBAについて質問です。 下記のような表が二つあります。 このExcelは別々のBook...

hir********さん

2019/10/2021:20:53

VBAについて質問です。
下記のような表が二つあります。
このExcelは別々のBookで保存されています。
やりたいことは
二枚目の表のL列・金額を一枚目の表の各月の実績列に入力したいです。

参照方法としては
一枚目の表のC列・費目と二枚目の表のC列・費目
一枚目の表のD列・ccと二枚目の表のA列・ccの各項目ごとに参照して
二枚目のL列・金額を参照したいです。
一枚目の「F2」の月の実績に入力したいです。

説明下手で申し訳ありません。
質問でも何でも構いませんのでよろしくお願い致します。

二枚目,費目,一枚目,Rows.Count,Sheet1&quot,表,各月

閲覧数:
25
回答数:
1

違反報告

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

プロフィール画像

カテゴリマスター

kky********さん

2019/10/2119:46:39

VBAで複数のブックを処理する場合は、どのブックにマクロを入れるのかを書いて下さい。

下記は画像上のブックに入れるマクロで、下のブックは選択するようにしてあります。

Sub Sample()
Dim fname As Variant
Dim wb As Workbook
Dim sh1 As Worksheet, sh2 As Worksheet
Dim tbl As Variant
Dim c As Integer
Dim r As Long
Dim ix As Integer
Application.ScreenUpdating = False
Set sh1 = Worksheets("Sheet1")
With sh1
tbl = Range("C5:D" & .Cells(Rows.Count, "C").End(xlUp).Row)
c = Month(.Range("F2")) * 4 + 4
End With
fname = Application.GetOpenFilename("Excelファイル(*.xls*),*.xls*", MultiSelect:=False)
If fname = "False" Then Exit Sub
Set wb = Workbooks.Open(fname)
Set sh2 = wb.Worksheets("Sheet1")
With sh2
For r = 8 To .Cells(Rows.Count, "A").End(xlUp).Row
For ix = 1 To UBound(tbl)
If .Range("A" & r) = tbl(ix, 2) And .Range("C" & r) = tbl(ix, 1) Then
sh1.Cells(ix + 4, c) = .Range("L" & r)
Exit For
End If
Next ix
Next r
End With
wb.Close
Application.ScreenUpdating = True
End Sub

  • 質問者

    hir********さん

    2019/10/2121:13:07

    丁寧なご説明ありがとうございます。
    とても助かりました。

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

  • 取り消す
  • キャンセル

この質問につけられたタグ

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

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

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

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

閉じる

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

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

閉じる