оценил результат косвенной функции в VBA - PullRequest
0 голосов
/ 16 января 2019

Я кодирую VBA и хотел бы оценить, ссылается ли конкретная ячейка на ячейки в других листах или нет. Я обычно оцениваю это, анализируя символы в значении ячейки перед "!".

Однако этот метод не работает, когда ячейка ссылается на ячейки на другом листе с использованием «косвенной» функции.

Например, =INDIRECT (ADDRESS(row, col,,,sheet_name)) или =INDIRECT ("SUM(" & A1(cell containing sheet_name) &"B2:B3)") относятся к ячейкам на других листах, но я не могу обнаружить это в VBA, потому что нет выражения вроде "!" в формуле.

Итак, может кто-нибудь помочь мне найти, существует ли какой-либо метод для оценки косвенных функций в VBA, в частности метод для преобразования =INDIRECT (ADDRESS(2, 1,,,"sheet2")) в =sheet2!A2, или другой способ узнать, содержит ли ячейка "косвенную" функцию относится к ячейкам в других листах или нет.

Заранее благодарим за поддержку!

1 Ответ

0 голосов
/ 16 января 2019

Попробуйте этот код:

Sub getRangeAddress()
    Dim oRng As Range
    Set oRng = Evaluate("=INDIRECT(Address(2, 1, , , ""Sheet2""))")
    If oRng.Parent.Name <> ActiveSheet.Name Then
        MsgBox oRng.Address(, , , True)
    End If
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...