将突出显示的绿色复制到另一个工作表

我设法复制在同一张表中的单元格。 但那不是我的主要目的。 我应该能够将突出显示的单元格复制到另一个工作表,如Sheet2或Sheet3。 我怎么做?

以下是我在同一张纸上复印的内容 点击这里查看图片

Sub copyHighlight() Dim ws As Worksheet Dim lr As Long, i As Long, u As Long Set ws = ThisWorkbook.Worksheets("Sheet1") With ws lr = .Cells(Rows.Count, 1).End(xlUp).Row If 2 > lr Then Exit Sub u = 2 For i = 2 To lr If .Cells(i, 1).Interior.ColorIndex = 4 Then .Cells(i, 1).Copy .Cells(u, "E") u = u + 1 End If Next i End With Set ws = Nothing End Sub 

搞清楚如何只复制某些细胞,这是很多人的事。

微小的变化:添加Sheets("Sheet2")如下:

 Sub copyHighlight() Dim ws As Worksheet Dim r As Long, i As Long, u As Long Set ws = ThisWorkbook.Worksheets("Sheet1") With ws lr = .Cells(Rows.Count, 1).End(xlUp).Row If 2 > lr Then Exit Sub u = 2 For i = 2 To lr If .Cells(i, 1).Interior.ColorIndex = 4 Then .Cells(i, 1).Copy Sheets("Sheet2").Cells(u, "E") u = u + 1 End If Next i End With Set ws = Nothing End Sub 

你的代码是非常好的,为了实现你想要的,你只需要参考一些其他表,如下所示(我复制你的代码和添加部分,使其工作)。

 Sub copyHighlight() Dim ws1 As Worksheet Dim ws2 As Worksheet Dim r As Long, i As Long, u As Long Set ws1 = ThisWorkbook.Worksheets("Sheet1") 'here you set reference to another worksheet Set ws2 = ThisWorkbook.Worksheets("Sheet2") With ws1 lr = .Cells(Rows.Count, 1).End(xlUp).Row If 2 > lr Then Exit Sub u = 2 For i = 2 To lr If .Cells(i, 1).Interior.ColorIndex = 4 Then .Cells(i, 1).Copy ws2.Cells(u, "E") 'NOTE, that here we used reference to another worksheet u = u + 1 End If Next i End With Set ws1 = Nothing Set ws2 = Nothing End Sub