将外部单元格地址转换为vba中的范围

我在单元格A1中有一个string,它是外部单元格的单元格地址(即另一个工作簿),

'[data transfer utility.xlsb]Sheet1'!$B$5 

在vba我想创build一个范围对象, myRange ,将对应于存储在单元格A1中的地址。

我尝试了各种解决scheme,但都没有工作。

VBA:

函数引用(strAddress As String)作为范围

     Dim intPos As Integer,intPos2 As Integer
     Dim strWB As String,strWS As String,strCell As String

     intPos = InStr(strAddress,“]”)
     strWB = Mid(strAddress,2,intPos  -  2)

     intPos2 = InStr(strAddress,“!”)
     strWS = Mid(strAddress,intPos + 1,intPos2  -  intPos  -  2)

     strCell = Mid(strAddress,intPos2 + 1)

    参考=工作簿(strWB).Worksheets(strWS).Range(strCell)

结束function

在VBA中:

 ExecuteExcel4Macro("'C:\[Book1.xlsx]Sheet1'!" & Range("A1").Address(, , xlR1C1)) 

在Excel中:

 ='C:\[Book1.xlsx]Sheet1'!$A$1