コードと質問の更新:このシートのモジュールの現在のコードは次のとおりです。
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("B2:B2")) Is Nothing Then
Application.Run "MonthlyRead"
End If
End Sub
Sub MPrintAll()
Dim c As String
Dim MonthlyList As Range
Set MonthlyList = Worksheets("Monthly").Range("MonthlyList").Cells
For Each cell In MonthlyList
Range("b2").Value = cell.Value
ActiveWorkbook.Worksheets("Monthly").PrintOut
Next cell
End Sub
問題が発生している場所を特定するために、コードをステップ実行してきました。"Range(" b2 ")。Value = cell.Value"の後にF8キーを押すと、すぐにシートのコードの最初の行に移動し、印刷コマンドを完全にスキップします。また、セルB2にコピーして貼り付けるのではなく、指定された範囲の最初の値を削除します。
参考までに、上記の最初のルーチンによって呼び出されるModule1のコードを次に示します。
Sub MonthlyRead()
Call MEFTPS
Call MUCT6
End Sub
Sub MEFTPS()
If Range("a2").Value = "EFTPS Package" Then
Call MShow
Else: Call MHide
End If
End Sub
Sub MHide()
Rows("20:20").Select
Selection.EntireRow.Hidden = True
Rows("31:31").Select
Selection.EntireRow.Hidden = True
Rows("42:42").Select
Selection.EntireRow.Hidden = True
Rows("53:53").Select
Selection.EntireRow.Hidden = True
Range("B2").Select
End Sub
Sub MShow()
Rows("20:20").Select
Selection.EntireRow.Hidden = False
Rows("31:31").Select
Selection.EntireRow.Hidden = False
Rows("42:42").Select
Selection.EntireRow.Hidden = False
Rows("53:53").Select
Selection.EntireRow.Hidden = False
Range("B2").Select
End Sub
Sub MUCT6()
If Range("g3").Value = "Y" Then
Call UCT6MShow
Else: Call UCT6MHide
End If
End Sub
Sub UCT6MHide()
Rows("19:19").Select
Selection.EntireRow.Hidden = True
Rows("30:30").Select
Selection.EntireRow.Hidden = True
Rows("41:41").Select
Selection.EntireRow.Hidden = True
Rows("52:52").Select
Selection.EntireRow.Hidden = True
Range("B2").Select
End Sub
Sub UCT6MShow()
Rows("19:19").Select
Selection.EntireRow.Hidden = False
Rows("30:30").Select
Selection.EntireRow.Hidden = False
Rows("41:41").Select
Selection.EntireRow.Hidden = False
Rows("52:52").Select
Selection.EntireRow.Hidden = False
Range("B2").Select
End Sub
ページ上部のデータ検証ドロップリストからの選択に基づいて、個別の支払いスケジュールを設定する動的ワークシートを使用しています。ドロップリストには約300のオプションがあります。次に、これらのスケジュールを印刷して、他の2つのプログラムから取得した情報を確認します。これらのプログラムはすべて、1日で印刷、コピー、スキャン、パック、および郵送する必要があります。
ドロップリストから各クライアント名をリストの最初から最後まで順番に選択できるVBAコードを探しています。リストは、「QtrlyList」という名前の別のシートの名前付き範囲から入力されます。
私はいくつかの非常に単純なコードを持っていますが、それは機能しません。
Sub PrintAll()
For Each cell In QtrlyList
Worksheets("Normal").PrintOut
Next cell
End Sub
コードを実行しようとすると、「TypeMismatch」エラーが発生します。これは「cell」または「QtrlyList」から来ていると私はかなり確信しています。どうやって直せばいいのかわからない。