В конце месяца я получаю файл Excel с переменным количеством листов.

Каждый лист имеет значение в одной ячейке: A1

Я хочу создать новый лист и отобразить все значения A1 на каждом листе и сумму.

Я знаю, как получить значение ячейки кросс-листа =Sheet1!A1 но если я добавлю новый лист =Sheet1!A1 и попробуйте расширить как серию, он заполнит формулу с =Sheet1!B 1 вместо =Sheet 2 !A1 который является желаемым результатом.

Как я могу сделать собственный список с перекрестной ссылкой листа?

1 ответ1

1

Не зная, как вы хотите это сделать, простым способом было бы использовать косвенный

Итак, по вашему резюме, если вы начинаете в строке 1 -

=INDIRECT("Sheet"&ROW()&"!$A$1")

Это покажет A1 на Sheet1

Ряд 2 покажет A1 на Листе 2

и т.п.


Другой способ приблизиться к этому был бы с макросом

Sub gather()
Dim wssrc As Worksheet
 'if this stays as activesheet, only run this when summary sheet is active
 'Otherwise, just change the activesheet to the summary sheet like -
 'Set wssrc = ThisWorkbook.Sheets("Sheet4") where "Sheet4" is whatever your summary sheet is
 Set wssrc = ActiveSheet
 Dim i As Integer
 i = 1

   For Each sh In ThisWorkbook.Sheets
      If Not sh.Name = wssrc.Name Then
       wssrc.Cells(i, 1) = sh.Cells(1, 1)
       i = i + 1
      End If
   Next
End Sub

Это перебирает все листы в рабочей книге, проверяет, не являются ли они вашим сводным листом, и копирует их значение A1 в сводный лист в столбце A.

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