更新:
好的,所以我使用了下面的代码,它完成了我需要它做的事情,即检查值是否为 0,如果是,则删除整行。但是,我想一次对一个工作簿中的多个工作表执行此操作。以下代码所做的是它仅从当前电子表格中删除零,当您通过 VBA 脚本打开 excel 时,默认情况下该电子表格处于活动状态。这里是工作零删除代码:
Dim wsDCCTabA As Excel.Worksheet
Dim wsTempGtoS As Excel.Worksheet
Set wsDCCTabA = wbDCC.Worksheets("Login")
Set wsTempGtoS = wbCalc.Worksheets("All_TemporaryDifferences")
Dim LastRow As Long, n As Long
LastRow = wsTempGtoS.Range("E65536").End(xlUp).Row
For n = LastRow To 1 Step -1
If Cells(n, 5).Value = 0 Then
Cells(n, 5).EntireRow.Delete
End If
Next
我究竟做错了什么?当我对同一个工作簿中的另一个工作表做同样的事情时,它什么也没做。我正在使用以下代码从另一个工作表中删除零:
Set wsPermGtoS = wbCalc.Worksheets("All_PermanentDifferences")
'delete rows with 0 description
Dim LastRow As Long, n As Long
LastRow = wsPermGtoS.Range("E65536").End(xlUp).Row
For n = LastRow To 1 Step -1
If Cells(n, 5).Value = 0 Then
Cells(n, 5).EntireRow.Delete
End If
Next
有什么想法吗?或做同样事情的另一种方式?
原始问题:
我想删除所有在特定列中为零的行。我正在使用以下代码,但似乎什么也没发生:
CurrRow = (Range("E65536").End(xlUp).Row)
For Count = StartRow To CurrRow
If wsDCCTabA.Range("E" & Count).Value = "0" Then
wsDCCTabA.Rows(Count).Delete
End If
Next
StartRow
包含起始行值
CurrRow
包含最后使用的行的行值