私は3つのステップを持つこのマクロを書いています。 まず行が列C後に空白になっていると第二ステップは、貢献、他のすべてのまたはプログラムの費用などのワークブックのままにする必要がタイトルの行があるの場合は行を削除することです-Youth。 第3のステップは、特定のタイトルの後に空白または空の行を追加することによって行をフォーマットすることです。VBA:行を削除し、条件に基づいていくつかの行を保持する方法?
このコードはコンパイルされていないようですが、どのように行が削除されるのを防ぐのか分かりません。
Sub RemoveRowsAndFormat()
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.Rows
nlast = rw.Count
For n = nlast To 9 Step -1
If (rw.Cells(n, 3).Value = "Contributions-All Other" Or rw.Cells(n, 3).Value = "Program Fees - Youth" Or rw.Cells(n, 3).Value = "Financial Assitance" Or rw.Cells(n, 3).Value = "Salaries & Wages" Or rw.Cells(n, 3).Value = "Payroll Taxes" Or rw.Cells(n, 3).Value = "Employee Benefits" Or rw.Cells(n, 3).Value = "Staff Training and Confer." Or rw.Cells(n, 3).Value = "Occupancy" Or rw.Cells(n, 3).Value = "Supplies" Or rw.Cells(n, 3).Value = "Telephone" Or rw.Cells(n, 3).Value = "Postage & Shipping" Or rw.Cells(n, 3).Value = "Promotion and Advertising" Or rw.Cells(n, 3).Value = "Bad Debt" Or rw.Cells(n, 3).Value = "Program Operating Expense" Or rw.Cells(n, 3).Value = "Program Operating Net") Then
rw.Rows(n).EntireRow.Insert
ElseIf (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
rw.Cells(n、3).Value = "寄付 - その他すべて"およびrw.Cells(n、3).Value = "プログラム料金 - Youth"は 'False ' - ' rw.Cells(n、3).Value'は '' Contributions-All Other ''**と同じであってはいけません。**' ** '**' Program Fees - Youth ''と同じです。 'And'ではなく' Or'を使う必要があります。 – YowE3K
そして、私は 'Set rw = ActiveWorkbook.ActiveSheet.UsedRange.Rows'はたぶん' Set rw = ActiveWorkbook.ActiveSheet.UsedRange'であるべきだとお勧めします。 – YowE3K
これらのコメントとは別に、どのエラーメッセージが表示されているのかを教えてください。これにより、コンパイルエラーの原因になることがあります。 – YowE3K