在Excel中find另一个单元格的单元格引用

我有一个工作表,从同一工作簿(= data!C68)中的不同工作表返回一个值,它返回一个值。

在另一个单元格中,我想引用原始单元格中的引用,但将行增加1(= data!C69)。 细胞不是彼此相邻的。

这可能是一个函数或fromula?

谢谢

乔纳森

Option Explicit Function GetCellReferenceUsedInFormula(ByVal src As Range) As Range If src.HasFormula Then Set GetCellReferenceUsedInFormula = Evaluate(Mid(src.Formula, 2)) End If End Function 

并用OFFSET在公式中使用上述函数

 =OFFSET(GetCellReferenceUsedInFormula(A1),1,0) 

这是假设单元格A1包含公式=data!C68
请注意,VBA代码假定公式很简单(即=somecellreference )。

有很多方法可以做到这一点。 这是一种方法。 我已经通过合并您想要偏移的行和列来扩展该function。 将此代码粘贴到模块中

句法

=的getOffset(范围,行,列)

备注

范围 (必需)是具有公式的单元格

(可选)要抵消的行

Col (可选)要抵消的列

样例用法

= GetOffset(A1):这将从A1引用的单元格中获取值。 如果A1引用=data!C69GetOffset将从数据!C69中获得值

= GetOffset(A1,1):这将从A1引用的下一个单元格(1行向下)获取值。 如果A1引用=data!C69GetOffset将从数据!C70中获得值

= GetOffset(A1,1,1):这将从A1所指的下一个单元格(1列的1行)中获取值。 如果A1引用=data!C69GetOffset将从数据!D70中获得值

= GetOffset(A1,0,1):这将拾取A1所指的下一个单元格(1列上的相同行)的值。 如果A1引用=data!C69GetOffset将从数据!D69中获得值

 Public Function GetOffset(Rng As Range, Rw As Long, Col As Long) As Variant Dim MyArray() As String, strTemp As String Dim TempRow As Long, TempCol As Long On Error GoTo Whoa Application.Volatile MyArray = Split(Rng.Formula, "!") TempRow = Range(MyArray(UBound(MyArray))).Row TempCol = Range(MyArray(UBound(MyArray))).Column TempRow = TempRow + Rw TempCol = TempCol + Col strTemp = MyArray(0) & "!" & Cells(TempRow, TempCol).Address GetOffset = Application.Evaluate(Trim(strTemp)) Exit Function Whoa: End Function