使用特定颜色的VBA复制/粘贴单元格

时间:2018-08-06 16:51:07

标签: excel vba excel-vba

VBA的新手。

在每张纸上,我试图复制适合RGB轮廓的单元格并将其粘贴到同一张纸的T2中。

模块正在运行,但是什么也没发生。

预先感谢

    Sub CopyColor()

    Dim rCell As Range

       For Each rCell In ActiveSheet.UsedRange
          If rCell.Interior.ColorIndex = RGB(112, 173, 71) Then
          rCell.Select
          rCell.Copy
          rCell("T2").PasteSpecial Paste:=xlPasteFormats

       End If
     Next rCell

    End Sub

更新:糟糕,我的意思是PasteValues。让它在活动工作表上运行,但我需要它遍历整个工作簿。尝试了此修改,但无效:

    Sub CopyColor()

    Dim rCell As Range
    Dim wk As Worksheet

       For Each wk In ThisWorkbook.Worksheets

          For Each rCell In ActiveSheet.UsedRange
             If rCell.Interior.Color = RGB(112, 173, 71) Then
                rCell.Copy
                Range("T2").PasteSpecial Paste:=xlPasteValues
                Application.CutCopyMode = False
             End If
          Next rCell
      Next wk

    End Sub

2 个答案:

答案 0 :(得分:0)

尝试以下操作:

resolve() {
    return this.itemsService.getAll()
    .pipe(
         tap(
             filter(items=>items.length > 0)
             do(items=>this.itemSelectedService.setAsSelected(items[0]))
         )
    );
}

另一种可能性:

Sub CopyColor()

Dim rCell As Range

For Each rCell In ActiveSheet.UsedRange
    If rCell.Interior.Color = RGB(112, 173, 71) Then
        rCell.Copy
        Range("T2").PasteSpecial Paste:=xlPasteFormats
        Application.CutCopyMode = False
    End If
Next rCell

End Sub

答案 1 :(得分:0)

您的代码很少有问题:

  • ColorIndex是一种颜色索引,与RGB值相反
  • rCell.Select不执行任何操作
  • rCell("T2")对我来说没有任何意义,应为Range(...)

因此,更正的版本可能是:

Sub CopyColor()
    Dim rCell As Range
    For Each rCell In ActiveSheet.UsedRange
        If rCell.Interior.Color = RGB(112, 173, 71) Then
            rCell.Copy
            Range("C1").PasteSpecial Paste:=xlPasteFormats
        End If
    Next rCell
End Sub