因此,我试图在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