Активный рабочий лист против рабочего листа вызова
У меня есть функция 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