【发布时间】:2016-11-03 00:13:13
【问题描述】:
感谢您花时间阅读我的问题。
我有一个带有 2 个工作表的工作簿,分别标记为“Sheet1”和“Sheet2”。
在“Sheet1”上,我有范围 B14:G65、I14:I65 和合并范围 J14:J65 合并范围中的每个合并单元格跨越 J:N 或 J14:N:14 到 J65:N65 列。
我需要将符合 F 列标准的范围值复制到同一范围区域中的“Sheet2”。
我有以下宏很好用,除非它到达合并的单元格时出错。如果单元格未合并,则可以正常工作。希望有人可以帮助我。
我不能使用行复制功能,因为 H 和 P:AD 列中有公式不能被覆盖,并且从 Sheet1 复制整行会覆盖它,因此我需要范围。
Sub Test()
Dim rng As Range
Dim lastRow As Long
Dim cell As Variant
Dim count As Long
count = 0
With ActiveSheet.Previous
lastRow = .Range("F" & .Rows.count).End(xlUp).Row
Set rng = .Range("F14:F" & lastRow)
For Each cell In rng
If cell.Value = "WIP" Or cell.Value = "WNS" Then
Range(cell.Offset(0, -4), cell.Offset(0, 1)).Copy
Range("B14").Offset(count, 0).PasteSpecial xlPasteValues
Range(cell.Offset(0, 3), cell.Offset(0, 3)).Copy
Range("I14").Offset(count, 0).PasteSpecial xlPasteValues
Range(cell.Offset(0, 4), cell.Offset(0, 4)).Copy
Range("J14").Offset(count, 0).PasteSpecial xlPasteValues
count = count + 1
End If
Next
End With
End Sub
【问题讨论】: