因此,我試圖在Excel中創建一種日常食物日記,我知道我想要它做什麼,我只是在努力實現所述想法...
我已經創建一個我希望用戶每天進入的模板,但我不希望用戶每天都必須創建一個新的工作表才能實現此目的,我想創建一個在Excel打開後將運行的宏,並且將檢查最後一張輸入工作表的填寫日期,如果它少於當前日期,請創建一個新的工作表並顯示要填寫的工作表!Excel宏,每天添加新工作表
這是我發現並嘗試到目前爲止,但它沒有做任何事情,並提出錯誤。
Private Sub Workbook_Open()
Dim sh As Worksheet
Dim shName As String
'name of the sheet template
shName = "Food Diary.xltm"
'Insert sheet template
With ThisWorkbook
If .Range("A1") < Date Then
.Range("A1") = Date
Set sh = Sheets.Add(Type:=Application.TemplatesPath & shName, _
after:=.Sheets(.Sheets.Count))
'Give the sheet a name, today's date in this example
On Error Resume Next
sh.Name = "Day" & " " & Worksheets.Count
If Err.Number > 0 Then
MsgBox "Change the name of Sheet : " & sh.Name & " manually"
Err.Clear
End If
On Error GoTo 0
End If
End With
End Sub
希望你能看到我試圖用這個來實現。
如果今天的日期大於表格中的最新日期,請創建一個名爲日期[張數]的新日期,我不確定日期事件,就好像日期輸入到「A1」並且一天過去一樣工作簿打開時不會更新?
我也發現了一件似乎是關於在創建新工具時隱藏工作表的東西,這是相當不錯的,只有當前工作表纔會顯示,但其他人應該仍然可以通過每個按下後滾動瀏覽每個按鈕的按鈕來訪問,我認爲我可以執行按鈕編碼,但我不確定這些工作表的可見性以及隱藏後是否可以取消隱藏它們對此的幫助也會很大。
*想出錯誤。*哪些錯誤以及哪些行? – 2014-09-04 14:54:50
'With ThisWorkbook'然後'.Range(...'是一個錯誤,因爲你沒有合格*工作表*。範圍屬於表單,而不是工作簿:) – 2014-09-04 14:55:22
@DavidZemens好的,我已經改變{ThisWorbook }到{ActiveSheet},現在它正在工作,但較舊的工作表的日期不會保持原樣,它會更改爲今天的日期...任何想法? – MrPhooky 2014-09-04 15:10:24