求EXCEL 中可以自动以当月1日到31日来命名31个工作表名称 和 单元格引用工作表名称的方法

每月要做工作表,一个个改日期的确是很累啊!
求方法快速改!
就是把Sheet1—Sheet31,把它自动改成12.1—12.31,就是这个月的日期!
跪求啊!!!!!有什么方法
可行的话,有追加!!!!!!

'可以自动的添加当月天数张工作表,并且在A1第一个显示工作表名称。
Sub a()
m = DateSerial(Year(Date), Month(Date) + 1, 0) - DateSerial(Year(Date), Month(Date), 0)
For i = 1 To m
Sheets.Add After:=Sheets(Sheets.Count)
Sheets(Sheets.Count).Name = Month(Date) & "." & i
Sheets(Sheets.Count).Cells(1, 1) = Sheets(Sheets.Count).Name
Next
End Sub
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-12-04
工作簿中含有31个工作表
运行EXCEL,工具---宏---Visual Basic编辑器
进入后,双击“sheet1(sheet1)后,打开了一个窗口
然后将下面的内容复制到新窗口工作区

Sub xx()
For i = 1 To Sheets.Count
Sheets(i).Name = "12." & i
Next
End Sub

最后,将光标放至 End Sub 后,调试-----运行到光标处,实现改名功能。
第2个回答  2011-12-04
你把这样改好的表保存为模板,下次就用此模板新建文件,还要搞那么复杂
第3个回答  2011-12-04
这个只能用vba来改,没有别的什么好办法。追问

恩,具体怎么改啊,帮我写一个代码啊,我不会!

追答

发我邮箱里吧,抽空我帮你做好啦,再发给你。说不清楚的
[email protected]

追问

如果你帮我做好了,下一个月我怎么办啊?最好帮我写一个VBA的代码啊!授之以渔啊!

追答

我帮你做好啦后,里面设置好按钮,写好代码,你可以仿照啊,等会,我正在写,一会先贴上来你试试,能直接用的话最好

追问

恩,谢谢了!写好了贴给我吧!有追加啊!

追答

Sub 改名()
Dim i As Integer
Dim sh As Worksheet
On Error Resume Next
Dim arr(1 To 31)
x = 12
For y = 1 To 31
arr(y) = x & "." & y
Next
For i = 1 To UBound(arr)
sh.Name = arr(i)
Next
Application.DisplayAlerts = False
For Each sh In Worksheets
If sh.Name Like "Sheet*" Then sh.Delete
Next
Application.DisplayAlerts = True
End Sub

追问

怎么不行啊?运行完了就只剩下一个工作表了!

追答

你用的是03还是07,如果是07,告诉我邮箱,我给你传一个做好的过去。