Excel单元格包含对其他单元格的引用。 设置一个范围指向另一个单元格

Sheet1中的A1单元格公式:

=Sheet2!B6 

在VBA中,我正在获取单元格A1的公式,但是我希望这样做:

 Dim rng1 as range Set rng1 = worksheets("Sheet1").formula 

我知道上述是不正确的,范围将需要一个对象,而不是一个公式。

在Sheet1!A1中是否有Sheet2!B6值,或者在Sheet1!A1中是否有公式=Sheet2!B6 ,这是有点不清楚的。

对于Sheet1!A1中的值,

 Dim rng1 as range Set rng1 = range(worksheets("Sheet1").range("a1").value) debug.print rng1.address(0, 0, external:=true) '<~~ Sheet2!B6 

对于Sheet1!A1中的公式,

 Dim rng1 as range Set rng1 = range(mid(worksheets("Sheet1").range("a1").formula, 2)) debug.print rng1.address(0, 0, external:=true) '<~~ Sheet2!B6 

如果你做了这样的事情呢?

 Sub t() Dim rng As Range, formulaSheet$, formulaCell$ Dim theFormula$ theFormula = Sheets("Sheet1").Cells(1, 1).Formula theFormula = Right(theFormula, Len(theFormula) - 1) Debug.Print theFormula formulaSheet = Left(theFormula, WorksheetFunction.Search("!", theFormula) - 1) formulaCell = Right(theFormula, Len(theFormula) - WorksheetFunction.Search("!", theFormula)) Debug.Print formulaSheet & ", " & formulaCell Dim myRange As Range Set myRange = Sheets(formulaSheet).Range(formulaCell) myRange.Select End Sub