-2

У меня есть лист с именем 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 ответ1

1

К сожалению, вы повторили пример имени листа в Индии 3 раза, ваш код после создания первого листа INDIA не проверяет, повторяется ли он, продолжает создавать вторую INDIA или любое повторяющееся местоположение, это создает ошибку для дублированного имени листа и остановки. Исправьте свой код, чтобы проверить имена, если он уже существует, или старайтесь не повторять местоположение

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .