У меня есть мастер-лист, у которого есть ряд, распределяемый по разным листам с определенными метками.
Я хочу, чтобы каждая строка распространялась на соответствующую вкладку (от мастера) в зависимости от информации в столбце B.
Я использовал код для распределения столбцов, но не мог удалить / обновить столбцы из мастера, если они изменились. Затем я добавил ID #, который будет уникальным для каждой задачи.
Я попытался изменить код для чтения из столбца B, но я получил новые листы с номерами от 1 до 31. Код работал до того, как я добавил его в столбец ID #, и в нем была строка: Set rng = ActiveSheet.Range(ActiveSheet.Range("B3"), _
читать A3
.
Мой код:
Sub ProcessRows()
Dim rng As Range, cell As Range
Set rng = ActiveSheet.Range(ActiveSheet.Range("B3"), _
ActiveSheet.Cells(Rows.Count, 1).End(xlUp))
For Each cell In rng.Cells
cell.EntireRow.Copy CopyTo(cell)
Next cell
End Sub
'Return a range object to which a row should be copied
' Range returned is determined by the value in "rng"
Function CopyTo(rng As Range) As Range
Dim s As Excel.Worksheet, sName As String
sName = Trim(rng.Value) 'just in case...
On Error Resume Next 'ignore any error
Set s = ThisWorkbook.Sheets(sName) 'see if we can grab the sheet
On Error GoTo 0 'stop ignoring errors
If s Is Nothing Then 'sheet didn't exist: create it
Set s = ThisWorkbook.Sheets.Add( _
after:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count))
s.Name = sName
rng.Parent.Rows(1).Copy s.Range("a1") 'copy headers
End If 'needed a new sheet
'return the first empty cell in column 1
Set CopyTo = s.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
End Function
У меня проблема в том, что без уникального идентификатора я не знаю, как заставить макрос расшифровать, если строка изменилась, и обновить ее, и я получаю дубликаты. Мы добавляем в эту книгу весь год, поэтому обновление макроса отдельных листов значительно экономит время.
Подводя итог, мне нужен макрос, который будет:
- Распределите каждую строку мастер-листа по каждому соответственно помеченному рабочему листу.
- Мне нужен каждый уникальный идентификатор #, чтобы обновить эту строку, если что-то изменилось.
- Я также должен убедиться, что на листах нет дубликатов.
Если есть способ автоматически запускать макрос при закрытии документа, это было бы бонусом, но запуск макроса вручную - это то, с чем я могу жить.