我有一张sample
以以下数据命名的工作表。
LOCATION EMP_ID
INDIA 1234
INDIA 2345
INDIA 3456
USA 4567
USA 5678
我需要根据位置自动创建以位置名称为工作表的工作表,并在每张工作表中填充与该位置相对应的数据(包括标题)。
我尝试使用一些示例代码,并借助一些网站。我可以自动创建没有标题的工作表,并且每个工作表只有 1 行。如果每个位置有超过 1 行,则会引发错误。
这是我尝试过的代码。
Sub CreateTabs()
Dim sheetCount As Integer
Dim sheetName As String
Dim workbookCount As Integer
With ActiveWorkbook
sheetCount = Sheets("sample").Range("A2").End(xlDown).Row
For i = 2 To sheetCount Step 1
sheetName = .Sheets("sample").Range("A" & i).Value
workbookCount = .Worksheets.Count
.Sheets.Add After:=Sheets(workbookCount)
.Sheets(i).Name = sheetName
.Sheets(i).Range("A2:B2").Value = .Sheets("sample").Range("A" & i, "B" & i).Value
Next
End With
Worksheets("sample").Activate
End Sub
感谢您的帮助。
答案1
不幸的是,您重复了 3 次工作表名称示例 India,您的代码在创建第一个工作表 INDIA 后不会检查它是否重复,它会继续创建第二个 INDIA 或任何重复的位置,这会导致工作表名称重复的错误并停止。更正您的代码以检查名称是否已存在或尝试不重复位置