2013-08-17 6 views
0

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

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 
+0

Это работает как шарм. (Спасибо)^3 – user1787425

+0

@ user1787425, когда вы вернетесь сюда, не забудьте принять этот ответ, нажав на галочку рядом с ним. –