我对所有这些都很陌生并且到处寻找。
我有一个命名范围" Ruptures"在表7中的(N14:P60),其中我想在列P值大于0的情况下找到并且在片9F:H中粘贴相应的单元N:P。我似乎无法只搜索P列。
这是我迄今为止所尝试过的:
Dim cell As Variant
Dim count As Long
count = 0
With Sheet7
Set Rng = Sheet7.Range("Ruptures")
For Each cell In Rng
'But I only want to check cells from the P column (this is where I am stumped)
If cell.Value > 0 Then
Range(cell.Offset(0, -2), cell.Offset(0, 0)).Copy
Sheet9.Activate
Range("F14", "H14").Offset(count, 0).PasteSpecial (xlPasteValues)
count = count + 1
Sheet7.Activate
Next
End With
End If
End Sub
提前非常感谢,祝你有个美好的一天! :)
乌尔苏拉
答案 0 :(得分:0)
这是在整个(多列)范围内迭代:
Set Rng = Sheet7.Range("Ruptures")
For Each cell In Rng
您可以使用以下方法将此限制为第三列:
For Each cell in Rng.Columns(3)
我还会简化复制/粘贴to avoid unnecessary worksheet Activate
并使用从一个范围到另一个范围的直接Value
分配(有关详细信息,请参阅here)。如评论中所述,您的Next
语句不能在If
块中:
For Each cell in Rng.Columns(3)
If cell.Value > 0 Then
Sheet9.Range("F14", "H14").Offset(count, 0).Value = Range(cell.Offset(0, -2), cell.Offset(0, 0)).Value
count = count + 1
End If
Next
可以使用Resize
方法进一步细化:
For Each cell in Rng.Columns(3)
If cell.Value > 0 Then
Sheet9.Range("F14").Offset(count).Resize(1,3).Value = cell.Offset(0,-2).Resize(1,3).Value
count = count + 1
End If
Next