###前提・実現したいこと
会員情報入力シートのデータをコース変更届シートへ差込&連続印刷したいのですが、エラーが発生していて困っています。
コードをどのように修正したら良いのかご教示下さい。
###発生している問題・エラーメッセージ
コードを実行すると「実行時エラー '13': 型が一致しません。」というエラーが表示されます。
デバッグすると「myNo = .Range("A" & i).Value」の行に問題が発生していました。
この行にブレークポイントを設定して、.Range("A" & i).Value にマウスカーソルを当てると、「myNo = 0」「i = 2」と値が表示されます。
###該当のソースコード
Sub コース変更届印刷()
Dim LastRow As Long
Dim i As Long
Dim myNo As Long
If vbNo = MsgBox("印刷を開始しますか?", vbYesNo) Then Exit Sub
With Worksheets("会員情報入力")
LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
For i = 2 To LastRow
myNo = .Range("A" & i).Value
If myNo = 0 Then
Exit For
End If
With Worksheets("コース変更届")
.Range("G2").Value = myNo
.PrintOut Copies:=1, Collate:=True
End With
Next i
End With
MsgBox ("印刷が終了しました")
End Sub
※別のExcelファイルでは上記コードで問題なく差込&連続印刷できています。今回、1行目の宣言名?、6行目と13行目のシート名、14行目のセル位置(G2)を変更してコードを実行したところエラーが発生してしまいました。
###補足情報(言語/FW/ツール等のバージョンなど)
Excelファイルのシート構成は下記のとおりです。
3つのシートで構成しています。
【1.会員情報入力シート】
A2:I52はテーブル設定しています(テーブル名:会員情報)。
A列に会員番号を入力すると、B・C・G・H列の各データは関数を使用して会員情報一覧表シートから取得するように設定してあります。
※会員氏名(B列)の場合:=IF(A3="","",VLOOKUP(A3,会員情報一覧表!A:E,3,0))
D・E・F・I列はデータを直接入力するかリストからデータを選択する設定にしてあります。
M~P列には、会員の学年(M列)と取得級(N列)という2つの条件から選択可能な平日コース(O列)と土曜日コース(P列)の一覧表を表示しています。
E1の印刷ボタンにはマクロが登録してあり、クリックするとコードが実行されます。
【2.コース変更届シート】
1行目~4行目の各データは、会員番号(G2)に基いて関数を使用して会員情報入力シートのテーブルから取得するように設定してあります。
※会員氏名(G3)の場合:=IF(G2="","",VLOOKUP($G$2,会員情報,2,0))
印刷範囲(A6~AH28)内で表示している各データは、1行目~4行目の各データ表示セルを参照しています。
※会員氏名(I14)の場合:=G3
ただし選択可能コース【平日】(A22)と選択可能コース【土曜日】(L22)のデータは、関数を使用して会員情報入力シートのM~P列の一覧表から取得するように設定してあります。
※選択可能コース【平日】(A22)の場合:=INDEX(会員情報入力!O:O,SUMPRODUCT((会員情報入力!M3:M7=G4)*(会員情報入力!N3:N7=V1)*ROW(会員情報入力!M3:M7)))
【会員情報一覧表シート】
A列:会員番号、B列:学年、C列:会員氏名、D列:現在のコース1、E列:現在のコース2 の一覧表です。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/11/27 08:12