我需要幫助在這裏。我有Sheet 1和Sheet 2。並在Sheet1/2中有B列日期和兩個工作表日期不相同,但是當我推薦選擇日期打印我想要VBA選擇最近的日期,如果它找不到我的日期。例如: - 如果我要求VBA從日期12-Aug-17打印,我可以在Sheet1中選擇,但在Sheet2中沒有8月12日,所以它必須選擇13日或11日並打印。在我的編碼中,如果它在相同的日期,它將打印兩張表。但如果失敗了,它會顯示錯誤。如何找到下一個可用的日期,如果它沒有找到使用VBA comended日期
代碼
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
請參見上面我的代碼。
你想讓代碼做到這一點有兩個日期,兩個相同的距離。例如,你選擇了第11名,但是,第11名和第12名不在表中。你要哪個? –