我在同一个工作簿中有10张。每个工作表仅包含特定月份(10个不同月份)的数据。如果我在D列中将时间格式设置为dd/mm/yyyy hh:mm
,并且我有一个动态行数。我希望代码从D列读取月份编号,并分别使用月份名称重命名工作表。
我该如何做到这一点?
答案 0 :(得分:0)
要遍历工作表,请使用简单的for
循环
For Each ws In Worksheets
在循环内,选择工作表
Sheets(ws.Name).Select
并提取月份
sheetdate = Range("D1").Value
mn = MonthName(Month(sheetdate))
最后,重命名工作表
ActiveSheet.Name = mn
关闭循环
Next ws
因此,将所有部分放在一起并简化代码,只需尝试这个
For Each ws In Worksheets
ws.Name =MonthName(Month(ws.Range("D1").Value))
Next ws
答案 1 :(得分:0)
这是我的方法,
Public Sub changeSheetName()
'Loop all sheet from workbook
For Each aSheet In Worksheets
'Get date from "D2" cell and change to month name
'And set it to sheet name
aSheet.Name = MonthName(Month(aSheet.Range("D2"))) & " " & Year(aSheet.Range("D2"))
Next aSheet
End Sub