2011-11-18 75 views
0

我想根據數據的日期從名爲Patrol的表打印報告。excel基於日期值的VBA打印行

範圍A1包含不同的日期,但我只希望在第一行的行打印數據=到(日期+ 1),即明天的日期。(要打印交貨詳情第二天)

對於每一行有日期和其他16個單元格。下面的代碼只是打印表頭

Private Sub Comprintpatrol_Click() 

    Range("A1").AutoFilter Field:=1, Criteria1:=Format(Date + 1, Range("A2").NumberFormatLocal) 
    ActiveSheet.PrintOut 
    ' or 
    Range("A1").CurrentRegion.PrintOut 
    Range("A1").AutoFilter 
End Sub 

任何想法?

+0

格里,沒有看的休息,而應該是 「約會」 + 1並不需要:TODAY()+ 1? –

+0

我會盡力謝謝 – Gerry

回答

0

我想你說「範圍A1包含不同的日期」。我想你的意思是「A列包含不同的日期」。 (範圍A1是單細胞,在紙張上的左上角單元格)

您可以從範圍功能通過將字符串獲得列一個「A:A」:Range("A:A")

+0

對不起是範圍A是正確的我會嘗試這個 – Gerry

0

你也可以嘗試UsedRange而不是CurrentRegion。後者可能會非常棘手,因爲它很大程度上取決於數據的設置方式(特別是如果您有空單元格)。

喜歡的東西:

Private Sub Comprintpatrol_Click() 
    Range("A1").AutoFilter Field:=1, Criteria1:=Format(Date + 1, Range("A2").NumberFormatLocal) 
    ActiveSheet.PrintOut 
    ' or 
    ActiveSheet.UsedRange.PrintOut 
    Range("A1").AutoFilter 
End Sub 
+0

感謝您的幫助,我會嘗試 – Gerry