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中引用的单元格在同一工作表中时有效,但在单元格中在不同的工作表中时则无效
有人可以帮忙解决这个问题吗
由于两个工作表(“ 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)