如下图所示,需要按A列的名单,批量创建工作表。
Sub NewShtBySelection()
Dim shtAct As Worksheet
Dim rngData As Range, c As Range
Dim strName As String
Dim n As Long, y As Long, strErr As String
If ActiveWorkbook.ProtectStructure = True Then
MsgBox "工作簿有保护,无法新建工作表,请先撤除保护。"
Exit Sub
End If
On Error Resume Next '忽略程序错误继续运行
Set rngData = Application.InputBox("请选择新建工作表名称来源。", _
Title:="提示", _
Default:=Selection.Address, _
Type:=8) '用户选择名称来源区域
Set rngData = Intersect(rngData, rngData.Parent.UsedRange)
'交集运算,避免用户选择整列数据造成运算量虚大或选择区域空白
If rngData Is Nothing Then '如果用户关闭了对话框,或选择区域空白,则退出程序
MsgBox "未选择有效区域。"
Exit Sub
End If
Set shtAct = ActiveSheet '当前工作表,操作