【发布时间】:2016-01-04 13:08:21
【问题描述】:
我希望删除我的电子表格中不直接靠近绿色绿色方块的所有空行。例如:
我拥有的是这样的:
Green
Empty
Green
Empty
Green
Empty
Empty
Empty
Empty
Green
Empty
Empty
Empty
Green
我希望得到这个:
Green
Empty
Green
Empty
Green
Empty
Green
Empty
Green
Empty
(等等)
我的电子表格有数千行 - 如果我全部检查一遍,如果我不想手动删除整行,我会在这里很长时间!
我已经尝试过过滤,但我的 excel 技能是基本的,我所能得到的要么全是彩色的,要么全是空白的......
我查找了一些 VBA - 我觉得这会做类似的事情,但由于我不知道任何 VBA,我不知道如何更改它以满足我的需要。
Sub RemoveEveryOtherRow()
Dim rowNo, rowStart, rowFinish, rowStep As Long
Dim rng2Delete As Range
rowStep = 2
rowStart = Application.Selection.Cells(1, 1).Row
rowFinish = ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
For rowNo = rowStart To rowFinish Step rowStep
If Not rng2Delete Is Nothing Then
Set rng2Delete = Application.Union(rng2Delete, _
ActiveSheet.Cells(rowNo, 1))
Else
Set rng2Delete = ActiveSheet.Cells(rowNo, 1)
End If
Next
If Not rng2Delete Is Nothing Then
rng2Delete.EntireRow.Delete
' Hide every other row
'rng2Delete.EntireRow.Hidden = True
End If
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
End Sub
非常感谢任何帮助!
【问题讨论】:
-
green empty empty green也不算吗?两个空单元格都紧挨着一个绿色方块... -
我认为没有公式可以实现这一点。但是 VBA(应用程序的 Visual Basic)应该能够做到这一点。看一下标签:[excel-vba]
-
公式不删除行。您可能可以使用公式在另一列中重现数据列,但要修复原始数据,您需要 VBA。 edit 如果“绿色方块”是指绿色背面填充的单元格,那么不,没有公式可以做到这一点。
-
@DirkReichel - 感谢您指出这一点。我希望只保留绿色行后面的空白行。
-
@Luuklag - VBA,这对我来说将是一个全新的世界!
标签: excel filter delete-row conditional-formatting vba