Активный рабочий лист против рабочего листа вызова

У меня есть функция Excel VBA (ниже), которая вызывается из нескольких листов и ссылается на локальную именованную ячейку, значение которой отличается в каждой таблице. Когда я обновляю свою книгу, нажимая клавишу F9, каждый вызов функции дает идентичный результат, потому что все вызовы этой функции получают локальное значение ячейки на листе, которое является фокусом, когда я нажимаю клавишу F9. Теперь я понимаю, что так определяется "активная" рабочая таблица. Я хочу получить значение локальной именованной ячейки в каждом рабочем листе, из которого вызывается функция. Может кто-нибудь сказать мне, как это сделать?

Function AcquisDate()
    Application.Volatile True
    [WOULD LIKE TO SET ACTIVE WORKSHEET TO CALLING WORKSHEET HERE
    AcquisDate = Range("AcquisDateCell") 'This cell name is local to each worksheet.
End Function

1 ответ

Используйте Application.Caller.Parent.Range(...), как в примере ниже

Function AcquisDate()
    Application.Volatile True
    AcquisDate = Application.Caller.Parent.Range("AcquisDateCell")
End Function
Другие вопросы по тегам