我一直在寫這個宏,它有三個步驟。 首先是刪除行,如果行是C列和二步驟之後空在那裏與冠軍有留在工作簿就像捐款,所有其他或課程費用行-Youth。 第三步步驟是通過在某些標題之後添加空格或空行來格式化該行。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 =「節目費用 - 青春」將評估爲「False ' - 'rw.Cells(n,3).Value'不能等於'「貢獻 - 所有其他」** **和**等於'「節目費 - 青年」'。你需要使用'Or'而不是'And'。 – YowE3K
而且我建議'Set rw = ActiveWorkbook.ActiveSheet.UsedRange.Rows'應該是'Set rw = ActiveWorkbook.ActiveSheet.UsedRange'。 – YowE3K
除了這些評論,你能告訴我們你收到了什麼錯誤信息 - 這將使我們能夠找到編譯錯誤的原因。 – YowE3K