型が一致しません
いつもお世話になっております。
シートごとに元データの値でフィルタをかけ、
フィルタした各シートのD列の文字列を照らし合わせて整合性を確認したく、
下記のようなVBAをつくりましたが、ここで↓
If name_A <> name_B <> name_C <> name_D Then
型が一致しませんとエラーになります。
どなたかアドバイスをお願いいたします。
Sub 不整合チェック()
'フィルター
Worksheets("Aリスト").Select
If ActiveSheet.AutoFilterMode = True Then Selection.AutoFilter
Range("B4").AutoFilter
Selection.AutoFilter field:=1, Criteria1:=Worksheets("元データ").Range("C3")
Worksheets("Bリスト").Select
If ActiveSheet.AutoFilterMode = True Then Selection.AutoFilter
Range("B4").AutoFilter
Selection.AutoFilter field:=1, Criteria1:=Worksheets("元データ").Range("C3")
Worksheets("Cリスト").Select
If ActiveSheet.AutoFilterMode = True Then Selection.AutoFilter
Range("B4").AutoFilter
Selection.AutoFilter field:=1, Criteria1:=Worksheets("元データ").Range("C3")
Worksheets("Dリスト").Select
If ActiveSheet.AutoFilterMode = True Then Selection.AutoFilter
Range("B4").AutoFilter
Selection.AutoFilter field:=1, Criteria1:=Worksheets("元データ").Range("C3")
'整合性チェック
Dim name_A As String
Dim name_B As String
Dim name_C As String
Dim name_D As String
name_A = Worksheets("Aリスト").Cells(65536, 4).End(xlUp).Value
name_B = Worksheets("Bリスト").Cells(65536, 4).End(xlUp).Value
name_C = Worksheets("Cリスト").Cells(65536, 4).End(xlUp).Value
name_D = Worksheets("Dリスト").Cells(65536, 4).End(xlUp).Value
If name_A <> name_B <> name_C <> name_D Then
MsgBox "データ不整合を発見しました。 処理を中断します。", vbCritical
Exit Sub
ElseIf mykouiji_kouji = name_nyukin = name_kokyaku = name_uriage Then
MsgBox "問題なし。"
End If
End Sub
お礼
なるほど。他の言語では簡単だったので、 Javaでも可能と思っていたのですが、 Javaではコレクションの中身がないと 本質的に実行時の型判定は不可能ということなんですね。 これを元に対策を考えてみます。