【发布时间】:2021-01-17 09:24:06
【问题描述】:
我想遍历工作表,如果满足内部条件,则将其复制到我的“Controle”工作表中。
我的代码在没有循环的情况下工作。
我的工作表“Controle”中有一个列表,其中包含所有工作表中的所有彩色单元格。代码必须跳过名称为“Controle”的工作表,因为我在这里将单元格复制到。
Sub Dubbelewaarden()
Dim cell As Range
Dim sht As Worksheet
For Each sht In Worksheets
If Not sht.Name <> "Controle" Then
For Each cell In Range("A2", Range("A2").End(xlDown))
If cell.Interior.ColorIndex = 3 Then
cell.EntireRow.Copy Destination:=Sheets("Controle").Range("A" & Rows.Count).End(xlUp).Offset(1)
End If
Next cell
End If
Next sht
End Sub
```
【问题讨论】:
-
Range("A2", Range("A2").End(xlDown))没有工作表引用,因此将假定活动工作表并且这永远不会改变。也最好使用 end(xlup)。 -
你能给我一个如何解决这个问题的例子吗?因为我真的试过了,但是我的工作簿又崩溃了……
标签: excel vba if-statement foreach