[英]find cell reference of a cell from another cell in excel
我有一個工作表,它從同一工作簿(= data!C68)中的另一個工作表返回一個值,該工作表返回一個值。
在另一個單元格中,我想引用原始單元格中的引用,但將行增加1-(= data!C69)。 單元不彼此相鄰。
通過功能或小舌可以做到嗎?
謝謝
喬納森
有很多方法可以實現這一目標。 這是一種方法。 我通過合並要偏移的行和列來擴展了功能。 將此代碼粘貼到模塊中
句法
= GetOffset(范圍,行,顏色)
備注
范圍 (必填)是具有公式的單元格
行 (可選)要偏移的行
上校 (可選)列(S)要偏移
樣品用量
= GetOffset(A1):這將從A1所引用的同一單元格中獲取值。 如果A1引用=data!C69
則GetOffset將從data!C69獲取值。
= GetOffset(A1,1):這將從A1所引用的下一個單元格(向下1行)中提取值。 如果A1引用=data!C69
則GetOffset將從data!C70獲取值。
= GetOffset(A1,1,1):這將從A1所引用的下一個單元格(1行向下1行)中提取值。 如果A1引用=data!C69
則GetOffset將從data!D70獲取值。
= GetOffset(A1,0,1):這將從A1所引用的下一個單元格(跨過1 Col的同一行)中獲取值。 如果A1引用=data!C69
則GetOffset將從data!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
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
)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.