如何通过VBA引用单元格中提到的另一张图纸的单元格

Jig*_*shi 3 excel vba reference range excel-vba

我有一个名为“ Book1”和“ Sheet1”和“ Sheet2”的excel文件。在Sheet1中,A1的单元格值为“'[Book1.xlsb] Sheet2'!$ A $ 14”,它是根据某些公式结果得出的。我希望通过VBA选择单元格A1中提到的单元格引用。

我把VB代码作为

Range(Range("A1")).Select or Range([Indirect("A1")]).Select
Run Code Online (Sandbox Code Playgroud)

此代码仅在A1中引用的单元格在同一工作表中时有效,但在单元格中在不同的工作表中时则无效

有人可以帮忙解决这个问题吗

Sha*_*ado 5

由于两个工作表(“ Sheet1”和“ Sheet2”)都在同一工作簿中,因此“ Sheet1”单元格A1中的值应为“ Sheet2!$ A $ 14”

下面的代码要比需要的更长一些,但是我想通过所有步骤来更好地解释。

我正在使用Split函数分隔Worksheet名称和Range.Address,并将结果放入2个数组元素中。

然后,您检索第一个数组RngString元素作为工作表的名称,然后第二个数组元素是range.address。

Option Explicit

Sub SelectRange()

Dim Rng As Range
Dim RngString As Variant
Dim ShtName As String
Dim RngAddress As String

RngString = Split(Worksheets("Sheet1").Range("A1").Value, "!")

' sheet name is the first array element
ShtName = RngString(0)

' Range address is the second array element
RngAddress = RngString(1)

' setting the Rng object
Set Rng = Worksheets(ShtName).Range(RngAddress)

' since your range is in another worksheet, you need to activate it first
Worksheets(ShtName).Activate
' select the range
Rng.Select

End Sub
Run Code Online (Sandbox Code Playgroud)