我正在编码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
的方法,还是另一种方法来了解是否包含一个包含“间接”功能是指是否在其他工作表中的单元格。
谢谢您的支持!
答案 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