=UNIQUE(A1:A13)
=COUNTA(UNIQUE(A2:A13))
Sub CreateMonthlySheets()
Dim directorySheet As Worksheet
Dim newSheet As Worksheet
Dim monthRange As Range
Dim monthCell As Range
Dim month As String
Dim i As Integer
'指定目录工作表
Set directorySheet = ThisWorkbook.Sheets("目录")
'获取月份列表的范围
Set monthRange = directorySheet.Range("A2:A13")
'遍历月份列表,并创建对应的工作表
For Each monthCell In monthRange
month = monthCell.Value
i = i + 1
'创建新工作表,并命名为对应的月份
Set newSheet = ThisWorkbook.Sheets.Add(After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count))
newSheet.Name = i & "月"
Next monthCell
MsgBox "已根据目录工作表创建了12个工作表,每个工作表的名称为1月到12月!", vbInformation
End Sub
Sub CreateSheetsFromList()
Dim directorySheet As Worksheet
Dim nameRange As Range
Dim nameCell As Range
Dim name As String
'指定目录工作表
Set directorySheet = ThisWorkbook.Sheets("目录")
'获取姓名列表的范围
Set nameRange = directorySheet.Range("A2:A" & directorySheet.Cells(Rows.Count, 1).End(xlUp).Row)
'遍历姓名列表,并创建对应的工作表
For Each nameCell In nameRange
name = nameCell.Value
'创建新工作表,并命名为对应的姓名
ThisWorkbook.Sheets.Add(After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)).Name = name
Next nameCell
MsgBox "已根据目录工作表创建了" & nameRange.Rows.Count & "个工作表,每个工作表的名称为列表中的姓名!", vbInformation
End Sub
Sub ExtractSheetNames()
Dim ws As Worksheet
Dim newNameSheet As Worksheet
'创建一个名为"SheetNames"的新工作表
Set newNameSheet = ThisWorkbook.Sheets.Add(After:= _
ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count))
newNameSheet.Name = "SheetNames"
'在新工作表A列中写入工作表名称
For Each ws In ThisWorkbook.Worksheets
newNameSheet.Cells(newNameSheet.Cells(Rows.Count, 1).End(xlUp).Row + 1, 1).Value = ws.Name
Next ws
MsgBox "工作表名称已提取至SheetNames工作表的A列!", vbInformation
End Sub
记住,问题表达的越详细越好。
联系客服