:
Sub SplitSht()
Dim rng As Range
On Error Resume Next
Set rng = Application.InputBox("请选择...[标题行]、[拆分关键字列]所在的单元格", Default:=ActiveCell.Address, Type:=8)
On Error GoTo 0
If rng Is Nothing...(Cells(i, 1).Resize(1, cols), dic(strkey))
Else
'第一次出现的关键字,记录标题及当前行单元格...Set dic(strkey) = Excel.Union(Cells(rng.Row, 1).Resize(1, cols), Cells(i, 1).Resize(1, cols))...(keys(i))
'注:这里没有去考虑sheet的名称是否合规,sheet名称是不能包含" / \ 等字符的"
Worksheets.Add(After:=Worksheets