将特定的彩色单元格复制到不同的工作表上

时间:2014-12-19 05:34:51

标签: excel vba

我正在开发一个带有条件格式的电子表格,它可以将某些单元格变为绿色和一些红色,具体取决于它们是否在正确的范围内。

我需要的是将红色的“超出规格”数字复制到下一张纸上,在第二张纸上留下绿色的“规格内”编号。有点像这样:

表1:

a 2

b 4

c 5

d 6

e 3

表2:

a

b 4

c 5

d 6

e

我希望这是有道理的,我确实拍了截图但我不能发布它们!我的手指交叉,有人可以提供帮助:)。

提前谢谢你 爵士

2 个答案:

答案 0 :(得分:1)

我假设数据在Sheet1的A列中。

<强>测试

Sub checkColornCopy()

找到自动化的最后一行

lastRow = Worksheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row

sheet2Counter = 1

For i = 1 To lastRow

提取细胞内部的颜色

ConditionalColor = Worksheets("Sheet1").Cells(i, 1).Interior.ColorIndex

颜色索引3表示“红色”

If ConditionalColor = 3 Then

如果颜色为红色,则将Sheet1的单元格内容复制到Sheet2

Worksheets("Sheet2").Cells(sheet2Counter, 1).Value = Worksheets("Sheet1").Cells(i, 1).Value

将Sheet1的单元格内容设为空白

Worksheets("Sheet1").Cells(i, 1).Value = " "
sheet2Counter = sheet2Counter + 1

End If

Next

End Sub

答案 1 :(得分:0)

这可能不是最好的方法,但它对我有用。
尝试:

Dim i As Integer
Dim cell As String

Sheets("Sheet1").Activate

For i = 1 To 10

    'Check if font is red
    If Range("A" & i).Font.Color = "fontcolor" Then

    cell = Range("A" & i).Value
    'Check for a number in the cell and remove the right most number
    While IsNumeric(Right(cell, 1))
        cell = Range("A" & i).Value
        cell = Left(cell, Len(cell) - 1)
        Sheets("sheet2").Range("A" & i).Value = cell
    Wend

    Else
    'If font is not red then display cell value on sheet2
    Sheets("sheet2").Range("A" & i).Value = Sheets("sheet1").Range("A" & i).Value
    End If

Next

Sheets("Sheet2").Activate

<强>被修改
在这种情况下,“A3”具有红色字体 要查找红色字体的颜色,请使用:

sub Text_Color()
Dim color As String
'"A3" has red text.
color = Sheets("sheet1").Range("A3").Font.color
MsgBox "My text color is= " & color
End Sub

获取msgbox中的数字,在此示例中为393372.并将上述代码中的“fontcolor”替换为393372。