

一覧表のA列のセルの値（確認用No）と同じ名前のシートにデータを自動転記したい。

処理中の対象レコードが、どのシートに転記されるのかを判定するコードを書いたがインデックスが有効範囲にありませんとエラーになってしまう。

[code]

    Set wstNo = Worksheets(.Cells(r, "A").Value)                             '確認Noと同じシート名をセット
    
[/code]

上記の行がエラーとなる。（インデックスが有効範囲にありません）  
セルの値と同じ名前のシートはすでにある状態です。

[code]

    Dim wstweb As Worksheet                                                            '「webアンケート」シート用オブジェクト変数
    Dim wstNo As Worksheet                                                            '各確認用Noシート用オブジェクト変数
        
    Dim lngERow As Long                                                                 
      
    Dim r As Long
        
    Set wstweb = Worksheets("webアンケート")
    With wstweb
            lngERow = .Range("A" & .Rows.Count).End(xlUp).Row                               
            
    'すべての集計元データを処理
    For r = 2 To lngERow
        Set wstNo = Worksheets(.Cells(r, "A").Value)                             '確認Noと同じシート名をセット
                With wstNo
                    wstNo.Cells(2, "B") = wstweb.Cells(r, "B")                                '何歳
                End With
    Next
    End With
    
[/code]


CC BY-SA 4.0
2021-03-25T08:57:40.073
74889
2021-03-25T09:28:14.403
2021-03-25T09:28:14.403
3060
44502
question
vba
VBAのセルの値と同じ名前のシート名をセットするとインデックスが有効範囲にありませんとエラーになる