前提・実現したいこと
作業員名簿を簡単に作成したいと思い取り組んでいます。
作業員名簿のデータベースとテンプレートの2つのExcelファイルがあります。
テンプレートのファイルで会社名を選択することによって
作業員名簿のデータベースから該当の作業員名を
テンプレートのシート(リスト)に転記したいのです。
VBA初心者でいろいろ調べながら進めましたが
止まってしまいます。
どなたか教えていただけないでしょうか。
よろしくお願いいたします。
■■の部分でエラーが出て止まってしまいます。
Private Sub Worksheet_Change(ByVal Target As Range)
'会社名変更時に作業員名を取り込む
'wbdb データベース
'wbte 取り込むテンプレート
Dim SetFile As String Dim wbte, wbdb As Workbook Set wbte = ActiveWorkbook 'マスターデータ取り込み元をブック名をセット(取り込み元:テンプレート) Application.DisplayAlerts = False 'マクロの実行中に特定の警告やメッセージを表示しない SetFile = "E:\会社データベース.xlsm" 'マスターデータファイルの取り込み場所をセット(データベースのアドレス) Workbooks.Open Filename:=SetFile, ReadOnly:=True, UpdateLinks:=0 'マスターデータファイルを読み取り専用で開きます() Set wbdb = Workbooks.Open(SetFile) '開いたマスターブック名とセット(取り込み先)
Dim i As Long, i_max As Long
Dim m As Long
m = 2
wbte.Worksheets("リスト").Range("C2:E51").ClearContents
i_max = wbdb.Worksheets("作業員名簿").Cells(Rows.Count, 2).End(xlUp).Row
For i = 4 To i_max
■■ If wbdb.Worksheets("作業員名簿").Cells(i, 2) = wbte.Worksheets("作業員名簿_全建統一5号").Cells(1, 50) Then
wbte.Worksheets("リスト").Cells(m, 3).Value = wbdb.Worksheets("作業員名簿").Cells(i, 2).Offset(0, 1).Value wbte.Worksheets("リスト").Cells(m, 4).Value = wbdb.Worksheets("作業員名簿").Cells(i, 2).Offset(0, 2).Value wbte.Worksheets("リスト").Cells(m, 5).Value = wbdb.Worksheets("作業員名簿").Cells(i, 2).Offset(0, 3).Value m = m + 1 End If
Next
Application.CutCopyMode = False
wbdb.Close False Application.DisplayAlerts = True
End Sub
回答1件
あなたの回答
tips
プレビュー