VBATips

Worksheet変数にSetする際「エラー13型が一致しません」の対処方法【ExcelVBA】

ワークシート変数にSetする際「エラー13型が一致しません」が表示される

ExcelVBAで以下エラーが発生する場合があります。
実行時エラー ’13’:
型が一致しません。

WorkSheet変数に代入する際に、このエラーが出る場合はValueの省略が問題の可能性が高いです。

「実行時エラー13型が一致しません」が発生、回避するサンプルコード

'Set ws時に実行時エラー13 型が一致しませんの対処方法
Public Sub sample()
    Dim ws As Worksheet
                
    '■問題ある場合
    Set ws = ThisWorkbook.Worksheets(Cells(1, 1)) '実行時エラー13 型が一致しません
    Set ws = ThisWorkbook.Worksheets(Range("A1")) '実行時エラー13 型が一致しません

    
    '■問題ない場合(但し、シートは存在する前提)
    Set ws = ThisWorkbook.Worksheets(Cells(1, 1).Value) '変数に格納OK
    Set ws = ThisWorkbook.Worksheets(Range("A1").Value) '変数に格納OK

    '■文字列変数strに一旦格納する場合は.Value省略されていても問題なし
    Dim str As String: str = Range("A1")
    Set ws = ThisWorkbook.Worksheets(str) '変数に格納OK
End Sub

注意点

  • 文法で省略するのも全然いいと個人的には思っています。
    ※この辺りのエラーが発生した際、ググる能力、ググって必要なページにたどり着く能力があれば

関連記事

コメント

タイトルとURLをコピーしました