ワークシート名が見つからないため、添え字が範囲外です。 Worksheet(...)
の回線コードで発生することがあります。
Worksheets("Home")
あなたのアクティブなブックは、あなたのホームワークシートと1ではないかもしれないので、添字エラーを返すことがあり、
Worksheets(tbValue)
が同じ第1の理由で失敗し、tbValueが正確なシート名と一致しない可能性があるためです。
最初のソリューションは、正しいブックがアクティブであることを確認することができる。
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
よりよい解決策をシートや書籍アクティベーションを回避し、完全修飾オブジェクトを使用することです。マクロは、ホームのシートと同じブック内にある場合:
Sub Home()
Dim tbValue As String
tbValue = ThisWorkbook.Worksheets("Home").TextBox1.Value
MsgBox ThisWorkbook.Worksheets(tbValue).Cells(7,1)
End Sub
また、ワークシート、おそらくSheet1
(IDEでこの名前を確認することができます)に割り当てられた名前VBAでWorksheets("Home")
を置き換えることができます。
実際に 'Textbox1 'に入力したシート名はシートとして存在しますか? TextBox1の値を 'TRIM'でラップして最後に余分な空白を取り除くと、' Trim(Worksheets( "Home")。TextBox1.Value) ' –
ええ、それはシートをハードコーディングしてみました名前はtbValueを使用する代わりに、同じエラー、実行時エラー9、範囲外の添え字です。 – decemberrobot
私は 'TextBox1'はそれほどアクセスできないとは思わない。シェイプ( "TextBox1")... ' – Slai