在excel公式中查找对单元格的引用
是否有公式或宏可以在另一个单元格中找到对单元格的引用? 例如:在excel公式中查找对单元格的引用,excel,vba,reference,formula,Excel,Vba,Reference,Formula,是否有公式或宏可以在另一个单元格中找到对单元格的引用? 例如: A | B | C ------------------ 1| 1 | 2 | =A1+B1 是否有一个公式将C1作为输入并返回=1+2?您可以尝试使用此用户定义函数,根据需要将公式中使用的单元格引用转换为其值 将以下功能放在标准模块(如Module1)上 Function CellRefereceToValue(ByVal rng As Range) As String Dim re As Object,
A | B | C
------------------
1| 1 | 2 | =A1+B1
是否有一个公式将
C1
作为输入并返回=1+2
?您可以尝试使用此用户定义函数,根据需要将公式中使用的单元格引用转换为其值
将以下功能放在标准模块(如Module1)上
Function CellRefereceToValue(ByVal rng As Range) As String
Dim re As Object, Matches As Object, Match As Object
Dim str As String
Set re = CreateObject("VBScript.RegExp")
With re
.Global = True
.Pattern = "[A-Z]+\d+"
End With
str = rng.Formula
If re.test(str) Then
Set Matches = re.Execute(str)
For Each Match In Matches
str = Replace(str, Match, Range(Match).Value)
Next Match
End If
CellRefereceToValue = str
End Function
然后假设你的公式是C2,如下图所示,在下面的表格中使用这个函数
=CellRefereceToValue(C2)
在下图中,Excel公式放在C列中,公式文本放在D列中,以显示C列中使用的公式,然后在E列中,可以看到UDF将C列公式中使用的所有单元格引用替换为相应的值
试试函数indirect(),看看“公式”选项卡中的“计算公式LUA”工具。=C1?正如所述,问题并不明确——C1不包括“参考”,而是一个公式。例如,如果C1为“D1”,则
INDIRECT()
公式适用。我怀疑您想解析C1中的公式,首先识别范围和非范围文本,以便重新显示。在这种情况下,考虑使用<代码>替换< /代码>公式(连同其他所需的)来替换范围信息(例如<代码> A1 < /代码>),使用<代码>间接()/<代码>。但是,到目前为止你试过什么?