我是VBA的新手。
我想根据条件将特定单元格从一张纸复制到另一张纸。 例如,如果在H2:H1000值的范围=“是”,则将条件符合的同一行中的A,B,C和D列的单元格复制到另一张纸上。
我的代码只是我所做的事情的开始,我不知道如何从符合条件的同一行中选择单元格。
Sub FindandCopy()
Dim rngA As Range
Dim cell As Range
Set rngA = Sheets("OFCE").Range("H2:H1000")
For Each cell In rngA
If cell.Value = "Yes" Then
cell.EntireRow.Copy
Sheets("Dashboard").Range("I2").End(xlDown).Select
ActiveSheet.Paste
End If
Next cell
End Sub
答案 0 :(得分:0)
您可能想尝试使用v-lookup或简单的sumif函数。您可以在工作表本身的vba外部进行此操作,也可以将其编程到现有的宏中。
答案 1 :(得分:0)
关于此的在线材料很多,因此您应该能够解决它。
我使用了offset(从H到A)并调整大小(将A扩展到A-D),然后复制到另一张纸上I的第一行未使用。
您不需要选择/激活,实际上是discouraged。
Sub FindandCopy()
Dim rngA As Range
Dim cell As Range
Set rngA = Sheets("OFCE").Range("H2:H1000")
For Each cell In rngA
If cell.Value = "Yes" Then
cell.Offset(, -7).Resize(, 4).Value.Copy _
Sheets("Dashboard").Range("I" & Rows.Count).End(xlUp)(2)
End If
Next cell
End Sub
但是,您应该考虑使用“自动筛选”或“查找”来执行此操作,而不是循环,因为它们效率更高。