Как получить адреса ячеек, которые вызывают конкретную функцию - PullRequest
1 голос
/ 20 февраля 2010

Мне нужно узнать адреса ячеек, которые вызвали определенную функцию.

Если моя функция MyFunction (arg1, arg2), Я должен быть в состоянии найти адреса ячеек, используя имя "MyFunction".

Пожалуйста, помогите мне найти наиболее эффективный способ сделать это.

Спасибо

Ответы [ 2 ]

1 голос
/ 06 апреля 2011

Я задавал тот же вопрос , но сформулировал его по-другому, поэтому я не нашел этот, когда искал.

Интересно то, что ответ, который я получил, кажется, лучше, чем зацикленный, по двум причинам:

  1. Быстрее - без зацикливания. Просто используйте Application.Caller
  2. Работает, если ваша функция вызывается из более чем одной ячейки
0 голосов
/ 20 февраля 2010

Вы можете перебирать диапазон ячеек, ища эту конкретную функцию:

Dim name as String
Dim searchRange as Range
Dim row as Integer
Dim col as Integer

name = "MyFunction" ''// for example
Set searchRange = Range("A1:P:50") ''// for example

For row = 1 to searchRange.Rows.Count
  For col = 1 to searchRange.Columns.Count
    If Left(searchRange.Cells(row, col).Formula, Len(name)) = name Then
      ''// do something with this cell
    End If
  Next col
Next row
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...