【问题标题】:Excel VBA copy and paste multiple ranges based on criteria in column not working with merged cellsExcel VBA根据列中的条件复制和粘贴多个范围不适用于合并单元格
【发布时间】: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

【问题讨论】:

    标签: vba excel merge


    【解决方案1】:

    我想我自己解决了问题。

    换行

    Range(cell.Offset(0, 4), cell.Offset(0, 4)).Copy
    Range("J14").Offset(count, 0).PasteSpecial xlPasteValues
    

    Range("J14").Offset(count, 0) = Range(cell.Offset(0, 4), cell.Offset(0, 4))
    

    【讨论】:

      猜你喜欢
      • 2021-10-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多