Примерно так будет создан список в столбце A листа1 «Имена листов» , и каждый раз, когда ячейка C1
на любом листе изменяется, он помещает значение этой ячейки в «sheet1» в столбце B, рядом с соответствующим именем листа в столбце «A».
Он идет в модуле ThisWorkbook
через редактор VBA *. Вы можете изменить имя листа и диапазоны по мере необходимости.
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Not Intersect(Target, Sh.Range("C1")) Is Nothing Then
Dim ws As Worksheet
Set ws = Sheets("Sheet1")
Dim iRow As Integer
On Error GoTo Yikes:
TryAgain:
iRow = Application.WorksheetFunction.Match(Sh.Name, ws.Range("A1:A50"), 0)
ws.Cells(iRow, 2) = Target.Value
Exit Sub
Yikes:
Dim rowcount As Integer
rowcount = ws.Cells(Rows.Count, 1).End(xlUp).Row
Dim r As Range
Set r = ws.Cells(rowcount + 1, 1)
r = Sh.Name
GoTo TryAgain:
End If
End Sub
* Чтобы попасть в редактор VBA, необходимо перейти к кнопке office, параметрам Excel и в популярном теге установить флажок рядом с Show Developer tab in the Ribbon
. Затем закройте его, перейдите на вкладку разработчика и нажмите кнопку Visual Basic
в крайнем левом углу. Откроется редактор, и вам нужно будет дважды щелкнуть модуль ThisWorkbook
на левой панели.