• ベストアンサー

VBAで空白がない所でコード走るとエラーが出る

VBAで空白がない所にコードが走るとエラーが出てしまう VBAで空白を左詰めで埋まるようにコードを作りました コードの画像で示したようにハイライトされた所でエラー発生 表の画像はコメントの通りです よろしくお願いします

質問者が選んだベストアンサー

  • ベストアンサー
  • HohoPapa
  • ベストアンサー率65% (455/693)
回答No.2

エラーをトラップして無視する方法もありますが 私だったら、そもそもエラーの起きない以下のコードにします。 Sub sample()  Dim tgRng As Range  Dim ChkCell As Range  Dim sw As Boolean    Set tgRng = Range("B1:F3")    sw = False  For Each ChkCell In tgRng   If ChkCell.Value = "" Then    sw = True    Exit For   End If  Next  If sw = True Then   tgRng.SpecialCells(xlCellTypeBlanks).Delete Shift:=xlToLeft  Else   MsgBox "空白セルはありません"  End If End Sub

その他の回答 (1)

  • kkkkkm
  • ベストアンサー率66% (1719/2589)
回答No.1

変数名は実際のものに変換してください。 Range(Cells(i, sCol), Cells(i, eCol)).Select を外して On Error Resume Next Range(Cells(i, sCol), Cells(i, eCol)).SpecialCells(xlCellTypeBlanks).Delete Shift:=xlToLeft On Error GoTo 0 ↑「ツール」「オプション」の全般タブの「エラートラップ」が「エラー発生中に中断」以外になっていると有効 もしくは Range(Cells(i, sCol), Cells(i, eCol)).Select はそのままで If Application.WorksheetFunction.CountBlank(Selection) > 0 Then Selection.SpecialCells(xlCellTypeBlanks).Delete Shift:=xlToLeft End If で試してみてください。 あと Row=1 のままなので一行目しか対象になっていないと思いますから以降の行の指定はRowではなくiでいいのではないでしょうか。

関連するQ&A