VBA中间接函数的评估结果

时间:2019-01-16 10:08:55

标签: excel vba reference

我正在编码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 :(得分:0)

尝试以下代码:

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