Я написал vba, чтобы объединить 50 листов в один мастер-лист. Оно работает. Теперь, хотя им нужно знать, на каком листе эта запись появилась для исправления. Как я могу записать имя листа?Название листа захвата для диапазона копирования
For Each sh In ActiveWorkbook.Worksheets
If sh.Name <> DestSh.Name
Then Last = Range("A100000").End(xlUp).Row
Set CopyRng = sh.Range("A2:k2" & Cells(Rows.Count, "A").End(xlUp).Row)
If Last + CopyRng.Rows.Count > DestSh.Rows.Count Then
MsgBox "There are not enough rows in the " & _
"summary worksheet to place the data."
GoTo ExitTheSub
End If
CopyRng.Copy
With DestSh.Cells(Last + 1, "A")
.PasteSpecial Paste:=xlPasteValues, skipBlanks:=True
Application.CutCopyMode = False
End With
(CopyRng.Rows.Count).Value = sh.Name
End If
Next
Проводка некоторого кода поможет много. – Taosique
Проблема в том, что я не могу отправлять сообщения на ваш сайт с работы, поэтому мне нужно использовать сотовый телефон. Просто нужно сказать, что вы захватили имя листа и сохранили его в столбце L, если это имеет смысл. – user3232490
Не зная больше, я бы сказал, что самым простым способом было бы просто добавить столбец справа, возможно, озаглавленный «Исходный лист», возможно, и просто заполнить его во всех записях. Затем отредактируйте VBA, чтобы захватить его. Простой, но он должен работать ... с дополнительным преимуществом, позволяющим сортировать на листе ... должно быть полезно. – James