我正在开发一个带有条件格式的电子表格,它可以将某些单元格变为绿色和一些红色,具体取决于它们是否在正确的范围内。
我需要的是将红色的“超出规格”数字复制到下一张纸上,在第二张纸上留下绿色的“规格内”编号。有点像这样:
表1:
a 2
b 4
c 5
d 6
e 3
表2:
a
b 4
c 5
d 6
e
我希望这是有道理的,我确实拍了截图但我不能发布它们!我的手指交叉,有人可以提供帮助:)。
提前谢谢你 爵士
答案 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。