ワークシート変数に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
注意点
- 文法で省略するのも全然いいと個人的には思っています。
※この辺りのエラーが発生した際、ググる能力、ググって必要なページにたどり着く能力があれば
コメント