Як посилатися на ту саму клітинку попереднього аркуша у excel?


3

Я знаю, як посилатися на клітинку на іншому аркуші в Excel, але я хотів би знати, чи є якийсь спосіб автоматизації цього процесу, так що якщо я повторюю аркуш, він буде оновлювати свої посилання на попередній аркуш послідовно.

Наприклад, скажімо, на аркуші n є клітинка, яка посилається на комірку в аркуші n-1. Якщо у мене є аркуші 1, 2 і 3, я хочу, щоб клітинка в 3 посилалася на комірку в 2. Потім, якщо я дублюю 3 (робить Лист 4), я хочу, щоб ця ж клітина в 4 посилалася на комірку в 3.

Зазвичай я мав би клітинку на аркуші 3 прочитати "Лист2"! A1. Тоді, якщо я копіюю Sheet3, щоб зробити Sheet4, мені доведеться зайти в ту саму клітинку на Sheet4 і змінити її з 'Sheet2'! A1 на 'Sheet3'! A1. Я вважаю за краще, щоб ця зміна була виконана автоматично, коли я копіював аркуш.

Вибачте за давно пояснене пояснення, але чи є спосіб автоматизувати цей процес, а не робити це вручну? Зараз я використовую попередній перегляд Excel 2013, але в мене також є Excel 2012.

Дякую!


Ніколи не пам'ятаю , знайшлося тут моє рішення: j-walk.com/ss/excel/tips/tip63.htm . Виходить макроси надзвичайно потужні! :)
Argus9

1
Можливо, ви зможете відповісти на власне запитання, щоб і решта світу була доброзичлива !!
Яків Ян Туінстра

Я зробив, перевірте свій коментар вище.
Аргус9,

1
Ви відповіли на це як коментар. Якщо ви відповідаєте на це як відповідь, люди, як правило, помічають це краще і можуть отримати від цього користь.
Яків Ян Туінстра

Отже, будь ласка, скористайтесь кнопкою відповіді на ваше запитання нижче, дякую!
slhck

Відповіді:


1

Я знайшов своє рішення прямо тут: j-walk.com/ss/excel/tips/tip63.htm . Виходить макроси надзвичайно потужні! :)

Для цього можна створити функцію, яку називають аркушем аркуша в VBA

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

0

Клацніть правою кнопкою миші на будь-якій вкладці робочого аркуша та натисніть "КОРИСНЯ ВИДИ"

Помістіть такий код у МОДУЛЬ 1. (якщо його немає, просто натисніть ВСТАВИТИ та МОДУЛЬ)

Код

Function oldsheet(rng As Variant)
    Prevsn = "Sheet" & Val(Mid(ActiveSheet.CodeName, 6, (Len(ActiveSheet.CodeName) - 5))) - 1
    With Sheets(Prevsn)
        oldsheet = .Range(rng)
    End With
End Function

І новий аркуш наступної формули

=oldsheet("J30")

Опубліковано як із посилання на всякий випадок, якщо його видалено.

Посилання витягнуто з http://www.mrexcel.com/forum/excel-questions/399317-formula-referencing-previous-sheet.html


0

Використання в комірці типу = Попередня (J30)

Function Prev(ByRef r As Range) As Variant
Application.Volatile
Prev = r.Parent.Previous.Range(r.Address).Value
End Function
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.