私はここで助けが必要です。私はシート1とシート2を持っています。 Sheet1/2ではB列に日付があり、両方の日付が同じではありませんが、印刷日付を選択すると、VBAは日付を見つけることができない場合に最も近い日付を選択します。例: - VBAに12月8日の日付から印刷するように頼んだら、sheet1で選択することができますが、シート2では8月12日がありませんので、13または11を選択して印刷する必要があります。私のコーディングでは、同じ日付であれば、両方のシートを印刷します。しかしそれが失敗すると、エラーが表示されます。次の検索方法VBAを使用して日付が見つからなかった場合は、利用可能な日付
コード
Sub CreatePDF()
Dim Sh As Worksheet
Set sh2 = Sheets("Sheet2")
Set sh3 = Sheets("Sheet3")
Dim i, j2, j3, sh2EndCell, sh3EndCell As Integer
Dim closest As Date
Dim W1Enddate As Date
W1Enddate = Application.InputBox("Enter the End Date")
sh2EndCell = sh2.Range("b" & Rows.Count).End(xlUp).Row
sh3EndCell = sh3.Range("b" & Rows.Count).End(xlUp).Row
For i = 2 To sh2EndCell
If sh2.Range("b" & i).Value = W1Enddate Then
j2 = i
Exit For
End If
Next i
For i = 2 To sh3EndCell
If sh3.Range("b" & i).Value = W1Enddate Then
j3 = i
Exit For
End If
Next i
sh2.Range("A1", "K" & j2).PrintPreview
sh3.Range("A1", "K" & j3).PrintPreview
Application.ScreenUpdating = False
sh2.PageSetup.PrintArea = ("A1:K" & j2)
sh3.PageSetup.PrintArea = ("A1:K" & j3)
Sheets(Array("sheet2", "sheet3")).Select
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:="", _
OpenAfterPublish:=True
Application.ScreenUpdating = True
End Sub
私のコード上を参照してください。
コードには、同じ距離離れた2つの日付があります。例えば11番を選んだのですが、11番はテーブル10番と12番にはありません。どちらがいいですか? –