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