May be
Sub Test()
    Dim Wkbk1 As Workbook
    Dim WkSh1 As Worksheet

    Set Wkbk1 = Workbooks(ActiveSheet.Range("B1").Value)
    Set WkSh1 = Wkbk1.Worksheets(ActiveSheet.Range("B2").Value)

    MsgBox (WkSh1.Range("A1").Value)
End Sub
In the declare of WkSh1, you would declare as Worksheet not as collections
And for assigning the worksheet, you would refer to the workbook
Hope this helps you