Excel 2007 輸入新日期

Excel 2007 輸入新日期

我嘗試建立一個 Excel 模板,其中包含三個我希望在開啟時自動更新的欄位。

該模板將包含的字段

  • 目前日期: 02/07/2012
  • 頁數:25
  • 日期期間: 02/07/2012 至 02/08/2012

當我在 2012 年 3 月 8 日之後開啟此範本時,此表將包含新數據

  • 目前日期: 03/08/2012
  • 頁數:26
  • 日期期間: 03/08/2012 至 02/09/2012

對於目前日期

Private Sub Workbook_Open() 
     ThisWorkbook.Worksheets("Sheet1").Range("A1").Value = Date 
End Sub

這可以使用 Excel 函數來完成嗎?

答案1

有多種方法可以實現這一目標。

最簡單的假設是開始日期和結束日期一致。

  1. 「之間」日期應位於兩個儲存格中。 「開始」日期設定為當月 2 號=DATE(YEAR( NOW() ), MONTH( NOW() ), 2),「結束」日期設定為當月 2 號+1=DATE(YEAR( NOW() ), MONTH( NOW() ) +1, 2)
  2. 然後,將“目前”日期簡單地設定為“開始”日期。

但是,您需要在儲存電子表格時「修復」這些日期。假設「目前」日期位於儲存格 B3 中,日期之間的 2 個日期位於儲存格 中。你可以使用類似的東西:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

    Range("B3").Select
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues

    Range("B5:C5").Select
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues

End Sub

ThisWorkbook程式碼模組中。這只是在單元格上複製/貼上值,以便將公式替換為日期。

哎呀,對此還需要補充一點。我給出的程式碼有點簡單化,因為您無法保存模板,因此您需要將給定的程式碼包裝在某些內容中,以防止它在編輯模板本身時觸發。最簡單的方法可能是對檔案使用命名約定。也許模板的檔名開頭有文字“TEMPLATE”。

相關內容