1
特定の列のセルが空であれば行を削除したい。空の行を削除すると1004のエラーが発生する
見つかったサンプルコードhereを使用しています。
Sub delrowEmptyStr()
Dim EmpCol As Range, LstRw As Long
LstRw = Columns(2).Find(What:="*", SearchOrder:=xlRows, SearchDirection:=xlPrevious, LookIn:=xlFormulas).Row
Set EmpCol = Cells.Find(What:="*", SearchOrder:=xlColumns, SearchDirection:=xlPrevious, LookIn:=xlFormulas).Offset(, 1).EntireColumn
With Intersect(Rows("2:" & LstRw), EmpCol)
.FormulaR1C1 = "=IF(RC2="""",""X"","""")"
.Value = .Value
.SpecialCells(xlConstants).EntireRow.Delete
End With
End Sub
私は再フォーマットし、列Aにそのデータを入れて、私は次のようにサブを変更:
Sub delrowEmptyStr()
Dim EmpCol As Range, LstRw As Long
LstRw = Columns(1).Find(What:="*", SearchOrder:=xlRows, SearchDirection:=xlPrevious, LookIn:=xlFormulas).Row
Set EmpCol = Cells.Find(What:="*", SearchOrder:=xlColumns, SearchDirection:=xlPrevious, LookIn:=xlFormulas).Offset(, 1).EntireColumn
With Intersect(Rows("2:" & LstRw), EmpCol)
.FormulaR1C1 = "=IF(RC1="""",""X"","""")"
.Value = .Value
.SpecialCells(xlConstants).EntireRow.Delete
End With
End Sub
最初に、問題のセルが列Bにあった私は、次のように使用しました
これを実行すると 'が生成されます。実行時エラー1004:セルが見つかりませんでした'。 「デバッグ」を叩く
が行に
.SpecialCells(xlConstants).EntireRow.Delete
を強調し、私はサブの2番目の反復を実行する前に、異なる並べ替え私のデータをやった - 多分私は取り除くしたいすべての空のセルを有する場合、私は思ったんだけど列の下部に問題があるかもしれませんか?
Ah!本当にありがとう、私はそれが何か簡単だと思ったが、_why_を動かすことができなかった。お疲れ様でした! – Aleizx
@Aleizxようこそ、喜んで助けてください。 –