Представьте, что у меня есть основной лист Excel в следующем формате:
store, date, total sales
NY, 1/1, 10
NY, 1/2, 15
WA, 1/1, 12
WA, 1/2, 14
Теперь, используя VBA, я хочу создать отдельную вкладку для каждого магазина, где вкладка содержит одинаковые столбцы и всестроки, где упоминается этот магазин.Например, будет вкладка под названием NY со следующим:
store, sate, total sales
NY, 1/1, 10
NY, 1/2, 15
Также будет другая вкладка для WA и для любого другого названия магазина, найденного в мастер-листе.
Вот код, который у меня есть:
Sub SplitandFilterSheet()
'Step 1 - Name your ranges and Copy sheet
'Step 2 - Filter by Department and delete rows not applicable
'Step 3 - Loop until the end of the list
Dim Splitcode As Range
Sheets("Master Sheet").Select
Set Splitcode = Range("Splitcode")
For Each cell In Splitcode
Sheets("Master Sheet").Copy After:=Worksheets(Sheets.Count)
ActiveSheet.Name = cell.Value
With ActiveWorkbook.Sheets(cell.Value).Range("MasterData")
.AutoFilter Field:=1, Criteria1:="<>" & cell.Value, Operator:=xlFilterValues
.Offset(1, 0).SpecialCells(xlCellTypeVisible).EntireRow.Delete
End With
ActiveSheet.AutoFilter.ShowAllData
Next cell
End Sub
Ошибка, которую я получаю, находится в строке, начинающейся с ".Offset ()".Ошибка состоит в следующем:
Run-time error '1004':
Application-defined or object-defined error
Для контекста мастер-лист называется «Мастер-лист», все данные в мастер-таблице находятся в диапазоне, называемом «MasterData», который включает в себя первую строкузаголовки.Наконец, есть список возможных имен хранилищ, хранящихся в переменной Splitcode.
Я бы предпочел сделать это в VBA, а не в Python или R по ряду причин, но я пытаюсь понять эту ошибку.