У меня есть ряд ячеек на "sheet1", ссылающийся на набор ячеек на другом листе. Я хочу заполнить идентичные наборы ячеек, увеличивая только лист.

Другой способ описать проблему: у меня есть основная таблица записей строк, ссылающаяся на другие листы, которые являются "формами". Как я могу скопировать набор ячеек на листе "формы" в ряд ячеек на мастер-листе?

2 ответа2

0

Если вы заполните две строки именно так, как вы хотите, вы, вероятно, сможете выбрать блок, который хотите скопировать, и использовать маркер заполнения, чтобы перетащить их вниз. Автозаполнение довольно умно, когда вы выбираете две строки и перетаскиваете. Это будет часто работать, что вы изменили, и просто сделать это сериалом.

Если это не сработает, вы можете вставить имена листов в столбец, а затем использовать ссылки INDIRECT для других формул.

0

[Копирование из Excel: переносимая формула для ссылки на данные на соответствующем рабочем листе.]

Создайте следующий макрос:

Function SHEET_OFFSET(Offset, Ref)
'   Returns cell contents at Ref, in sheet Offset
    Application.Volatile
    With Application.Caller.Parent
        SHEET_OFFSET = .Parent.Sheets(.Index + Offset) _
         .Range(Ref.Address).Value
    End With
End Function

См. Как добавить VBA в MS Office? для получения общей информации об использовании макросов.

Затем, если вы хотите, чтобы ссылки на Sheet1 выглядели так:

         A             B             C
1   =Sheet2!G17   =Sheet2!M42   =Sheet2!Q95   ...
2   =Sheet3!G17   =Sheet3!M42   =Sheet3!Q95   ...
         ︙            ︙            ︙

установите A1 в SHEET_OFFSET(ROW(), $G$17) и т. д.   Первый аргумент - это номер листа относительно текущего, а второй аргумент - ссылка на ячейку.

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