Subscript is out of range because worksheet name is not found. It may happen in both Worksheet(...) line codes.
Worksheets("Home") may return subscript error because your active workbook may not be the one with your Home worksheet;
Worksheets(tbValue) may fail by same first reason and because tbValue may not match exact sheet name.
First solution may be ensure correct book is active:
Sub Home()
Dim tbValue As String
Workbooks("your_workbook_name.xlsm").Activate
tbValue = ThisWorkbook.Worksheets("Home").TextBox1.Value
Worksheets(tbValue).Activate
MsgBox Cells(7,1).Value
End Sub
Better solution is to avoid sheet and books activations and use full qualified objects. If your macro is in the same book as Home sheet:
Sub Home()
Dim tbValue As String
tbValue = ThisWorkbook.Worksheets("Home").TextBox1.Value
MsgBox ThisWorkbook.Worksheets(tbValue).Cells(7,1)
End Sub
You can also replace Worksheets("Home") with VBA assigned name to worksheet, probably Sheet1 (you can check this name in IDE).
Textbox1actually exist as a sheet? If it does try wrapping your Textbox1 value with aTRIMto get rid of any extra spaces at the end:Trim(Worksheets("Home").TextBox1.Value)TextBox1can't be accessed like that. It has to be the sheet object likeSheet1.TextBox1orWorksheets("Home").Shapes("TextBox1")...tbValueget a value correctly fromTextBox1?MsgBox Cells(7,1).Valueit will be using the currently active sheet - you may be reading the cell value from the wrong sheet. @Vityata shows how to ensure it's looking at the right sheet with theWith... End Withblock (or just putting the sheet name beforeCells).