|
> 発想を変えて"#N/A"の文字の時は削除
> するようにしたのですが、型が一致しません。という
> エラーがでてしまいます。
何故エラーになったか知ることが、今後VBAを習得する上で必要と思いますので
解決済みとは思いますが、参考まで。
> Select Case Workbooks("Book1").Worksheets(1).Cells(x, 1)
> Case "#N/A"
で、まず、Valueプロパティが省略されていますので、この場合は、
Cells(x, 1).Value として処理されます。
Valueは、値を取得しますが、セルに表示されている #N/A は、
多分 LookUp関数等を使用した計算式の結果だとすると、そのセルの値は、
"#N/A" ではありません。 あくまでも値は、エラー値です。
セルに「表示」されている内容は、Textプロパティで取得出来ます。
また、セル値タイプをTypeName関数で調べると"Error"を返します。
または、IsError関数に対しては True を返します。
なお、Select Caseを使用していますが、Caseが1つですので、If...Then
ステートメントで充分かと思います。
以上を簡潔に整理して、こんな感じで如何でしょうか。
Sub ge2()
Dim x As Long
With Workbooks("Book1").Worksheets(1)
For x = 15 To 1 Step -1
With .Cells(x, 1)
If .Text = "#N/A" Then .Delete ' または
' If TypeName(.Value) = "Error" Then .Delete ' または
' If IsError(.Value) Then .Delete
End With
Next x
End With
End Sub
|
|