|
以前、同じbookのSheet間のデータをリストとして取り込み、複数列を表示させて、選択すると、他の複数のtextboxに該当データを取り込むVBAを教えていただきましたが、今回は、同じフォルダ内の異なるbook間でのデータ取り込みのVBAを教えてください。前回ご教示いただいたVBAを修正してみたのですがうまくいきません。ご教示ください。
1.同じフォルダ「給与管理」内のbook1のsheet"入力票"のuserformのcombobox1のリストに、book2のsheet"給与マスター"のrange("a3").currentregion.selectした範囲から項目行を除いた範囲をリストとし、項目も表示させたい。
2.book2は非表示、非activeで、Combobox1の処理終了とともに、保存しないで閉じるようにしたい。
1.と2.を満たすVBAとするには、以下のVBAをどのように修正・加筆すればいいのでしょうか?
Private Sub Combobox1_Click()
With Me.ComboBox1
If .ListIndex < 0 Then Exit Sub
Sheets("入力票").range("C5").Value = .List(.ListIndex, 1)
Sheets("入力票").range("D5").Value = .List(.ListIndex, 2)
Sheets("入力票").range("E5").Value = .List(.ListIndex, 3)
・
・
・
Sheets("入力票").range("K7").Value = .List(.ListIndex, 1)
Sheets("入力票").range("L7").Value = .List(.ListIndex, 2)
Sheets("入力票").range("M7").Value = .List(.ListIndex, 3)
End With
End Sub
Private Sub UserForm_Initialize()
・
・(他のinitializeに関係する記述があります)
Dim r As Range
Set r = workbooks("book2.xls").Worksheets("給与マスター").Range("A3").currentregion.select
With Me.Combobox1
.RowSource = r.Address(External:=True)
.ColumnHeads = True
.TextColumn = 1 '表示する列を指定する。
.BoundColumn = 2 'Valueに返す列指定する。この場合はC列表示
.ColumnCount = 4
.ColumnWidths = "50;40;30;20"
End With
.
.(他のinitializeに関係する記述があります)
.
End Sub
|
|