エクセル2013VBA初心者です。
入力シートからDBシートへ、DBシートから印刷シートへのデータ転記と印刷、入力内容のクリアまでは出来るようになりました。
DBシートの検索を行い、記録内容を入力シートに転記する抽出を行いたいのですが、下記構文を書いたところで問題が発生しました。
If Sh2.Range("A & i").Value = j And Sh2.Range("B & i").Value = k Then
でとまります。メッセージは ‘Range’メソッドは失敗しました:‘Workshieet’オブジェクトというものです。
やろうとしていることは、入力シートに設けた“E12”と”G12”の二つの検索項目をキーにDBシートの行を特定し、この行の内容を入力シートに反映しようということです。
入力シートの検索項目“E12”、 ”G12”はそれぞれDBシートのA列、B列に格納されている項目で、年度と連番です。サンプルとして入力シート"C5"に抽出しようとしているDBシートD列は申請者名です。
恐れ入りますがよろしくご教示頂きたく、お願い申し上げます。
Sub DBシートから力情報を抽出する ()
Dim Sh1 As Worksheet
Dim Sh2 As Worksheet
Dim i As Long
Dim j As Long
Dim k As Long
Set Sh1 = Worksheets("入力")
Set Sh2 = Worksheets("DB")
j = Sh1.Range("E12").Value
k = Sh1.Range("G12").Value
With Sh2
For i = 2 To .Range("A" & Rows.Count).End(xlUp).Row
If Sh2.Range("A & i").Value = j And Sh2.Range("B & i").Value = k Then
Sh1.Range("C5").Value = Sh2.Range("D & i").Value
End If
Next
End With
End Sub
お礼
早速のご教示ありがとうございました。 お蔭様で問題解消しました。 様々調べながらプログラムをしていますが、基本が身についていないことを 痛感します。今後とも宜しくご指導下さい。