我在A栏上有一些值,例如:
"A" "B"
1 ok
1 ok
1 me
2 next
2 next
2 next
我的代码去了" A"如果它是完全相同的,我想要的是如果列" A"让所有人检查一下" B"最后一个值是" me"如果它在那里,留下那些行" 1"仅在A列中,如果不是,则删除所有包含" 1"的行。不知道如何实现这一目标。任何帮助表示赞赏。
Dim i As Long
Dim initialPlaceHolderValue As String
Set UsedRng = ActiveSheet.UsedRange
FirstRow = UsedRng(1).Row
LastRow = UsedRng(UsedRng.Cells.Count).Row
r = WorksheetFunction.RandBetween(180, 255)
g = WorksheetFunction.RandBetween(180, 255)
b = WorksheetFunction.RandBetween(180, 255)
initialPlaceHolderValue = Cells(FirstRow + 1, 1).Value
For i = FirstRow + 1 To LastRow
myColor = RGB(r, g, b)
If Cells(i, 1).Value = initialPlaceHolderValue Then
Debug.Print Cells(i, 19).Value
Cells(i, 1).EntireRow.Interior.Color = myColor
Else
Dim myRange As Range
initialPlaceHolderValue = Cells(i, 1).Value
r = WorksheetFunction.RandBetween(180, 255)
g = WorksheetFunction.RandBetween(180, 255)
b = WorksheetFunction.RandBetween(180, 255)
Cells(i, 1).EntireRow.Interior.Color = RGB(r, g, b)
End If
Next i
答案 0 :(得分:0)
这是一个非常基本的蛮力方法:
LastRow = ...
位,因为如果删除任何行,它将变小。在LastRow = ...
行与`r = ..."之间执行此操作线。
而且,顺便说一句,如果你确实声明了所有变量,那么这是一个很好的做法(你当然应该这样做)。此外,没有必要一遍又一遍地声明任何WITHIN循环,就像你在myRange
所做的那样;把它移到子的顶部。
答案 1 :(得分:0)
以下代码应该达到你想要的(至少我想你想要的,你的问题不是很容易理解)。
Sub RemoveIfNot1AndMe()
For Each cell In Range("Your Range In Column A")
If (cell.Value = "1") Then
If (Range(cell.Address).Offset(0, 1).Value <> "me") Then
Rows(cell.Row).EntireRow.Delete
End If
End If
Next cell
End Sub
循环将遍历行中的每个单元格(可能是您的列),如果值 1 ,它将检查其旁边的单元格是否包含 me 如果它没有删除它。
像
这样的东西"A" "B"
1 ok
1 ok
1 me
2 next
2 next
2 next
最终看起来像这样
"A" "B"
1 ok
1 ok
2 next
2 next
2 next
Sub RemoveIfNot1AndMe()
Dim deleteRowsWithValue1 As Boolean
deleteRowsWithValue1 = False
For Each cell In Range("Your range")
If (cell.Value = "1") Then
If (Range(cell.Address).Offset(0, 1).Value = "me") Then
deleteRowsWithValue1 = True
End If
End If
Next cell
If (deleteRowsWithValue1) Then
For i = 1 To Range("A:A").Cells.SpecialCells(xlCellTypeConstants).Count
If (Range("A" & i).Value = "1") Then
Rows(i).EntireRow.Delete
i = i - 1
End If
Next
End If
End Sub
像
这样的东西"A" "B"
1 ok
1 ok
1 me
2 next
2 next
2 next
最终看起来像这样
"A" "B"
2 next
2 next
2 next