2017-01-24 10 views
1

空の行(空白)を読み込み、列Cから塗りつぶし(タイトル)行を読み込むコードを書くのが難しいですが、空の行(空白)ではなくタイトルの空の行のみが削除されます。値が0の場合、空の行と埋め込み行を読み込み、埋められた行を削除する方法は?

行タイトルと空白の空白については列Cを読むためのコードを作成することができます。列Cにタイトルがないギャップだけが表示されます。次に、タイトルがある行が列Dから空の場合、Ln/mは空でないことを意味するものを意味しません。その行は削除されますが、ギャップは削除されません。この図はファイルの書式を示しており、4行目を削除する必要があります。すべてのヘルプは、いくつかのスエードのコードで

enter image description here

私のコードをいただければ幸いです。私はこれについてどうやって行くのか少し混乱しています。

Dim WS As Worksheet 
    For Each WS In Sheets 
    WS.Activate 

     Dim n As Long 
     Dim nlast As Long 
     Dim rw As Range 
     Set rw = ActiveWorkbook.ActiveSheet.UsedRange 
     nlast = rw.count 

     For n = nlast To 9 Step -1 
      If (rw.Cells(n, 3).Value = "") Then 
      keep 
      ElseIf (rw.Cells(n, 3).Value = text) Then 
      keep but 
      Else (rw.Cells(n, 4).Value = "" And rw.Cells(n, 5).Value = "" And rw.Cells(n, 6).Value = "" And rw.Cells(n, 7).Value = "" And rw.Cells(n, 8).Value = "" And rw.Cells(n, 9).Value = "" And rw.Cells(n, 10).Value = "" And rw.Cells(n, 11).Value = "") Then 
      rw.Rows(n).Delete 

      End If 
     Next n 
     Next WS 
    End Sub 

答えて

1

あなたはかなり近いです。ここに固定コードがあります:

Sub Test() 

Dim WS As Worksheet 
Dim n As Long 
Dim nlast As Long 


For Each WS In Sheets 

nlast = WS.UsedRange.Rows(WS.UsedRange.Rows.Count).Row 

    For n = nlast To 9 Step -1 
     If WS.Cells(n, 3).Value <> "" And WS.Cells(n, 4).Value = "" And WS.Cells(n, 5).Value = "" And _ 
     WS.Cells(n, 6).Value = "" And WS.Cells(n, 7).Value = "" And WS.Cells(n, 8).Value = "" And _ 
     WS.Cells(n, 9).Value = "" And WS.Cells(n, 10).Value = "" And WS.Cells(n, 11).Value = "" Then 

     WS.Rows(n).EntireRow.Delete 

     End If 
    Next n 
Next WS 
End Sub 
+0

こんにちは、このマクロは何も削除していません。タイトル行はまだそこにある...私は私がはっきりしていないと思う。列 'C'に空白行があり、列' C'にタイトルなしで空白がある場合、その行は残っていて削除されませんが、列 'C'のタイトルで始まる行があればその行が列 'D'と' L'の間で空である場合にのみ削除する必要があります – MTBthePRO

+1

@MTBthePRO - 'UsedRange'は列Aから始まりますか?そうでない場合は、 'UsedRange'内の正しい列を参照するようにすべての列番号を調整する必要があります。 (私が昨日言ったように、 'UsedRange'ではなく、ワークシートで作業する方が良いです。) – YowE3K

+0

@ YowE3Kよく、最後の行を決定する必要があるため、' UsedRange'はnLastの必須項目です。 – MTBthePRO

関連する問題