使用从各列中提取的月份重命名多个工作表

时间:2015-07-10 08:09:56

标签: excel vba excel-vba date rename

我在同一个工作簿中有10张。每个工作表仅包含特定月份(10个不同月份)的数据。如果我在D列中将时间格式设置为dd/mm/yyyy hh:mm,并且我有一个动态行数。我希望代码从D列读取月份编号,并分别使用月份名称重命名工作表。

我该如何做到这一点?

2 个答案:

答案 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