Excel以字体颜色为条件来调用某区域内符合条件的单元格并显示其内容,用函数实现

问题1:先找出sheet1表A1到I1的数据中哪个单元格字体颜色为红色,然后在sheet2表对应位置的单元格字体颜色也变为红色,比如sheet1表中的C1单元格字体颜色为红色,要求在sheet2表中的C1这个位置里的数据的字体颜色也为红色.不知道函数能不能实现这个功能,而且每行都如此操作?
问题2:sheet2表中A1到I1中的单元格根据自身的列号如果等同K1的数值为3,那么该单元格字体颜色变为红色,比如C1因为位处第3列,列号等同K1为3,那么C1单元格内的数据8的字体颜色自动变为红色.以下每行一样操作.要求用条件格式操作,其中的 公式那栏应该怎么写?
问题3:把sheet2表中每行中的字体颜色为红色的那单元格的内容输出在L列.就是以字体颜色为条件来查找A1到I1中哪个单元格字体颜色为红色,然后在L1输入函数把该单元格的内容输出来.比如C1里的字体颜色为红色,在L1输入函数,然后显示C1里的数据8.好像需要用到vba,但是代码不会写,请高手帮忙!(提醒:在问题2操作后,字体是显示为红色但并未真正变为红色,所以在vba里写如下代码
.font.colorindex=3
好像不能真正找出字体颜色为红色的单元格----这个问题3困扰我很久了,有在网上找答案,才发现提醒中出现的这个问题,请高手给出代码后最好能详细注解一下代码的意思,谢谢!)
跪求高手帮忙解决!

由于设置“条件格式”后,单元格的真实字体颜色无法用VBA显示出来,所以第一个问题会与第二个问题冲突。

现只对第二与第三问题解答如下:

第一个问题,选中A1:i1后,在条件格式窗口中选“公式”,然后在框中输入=COLUMN()=$K1,再设置红色字体即可;

第二个问题,不用VBA,原因你也说到了,可以用公式来解决,因为在K列已经有了条件,所以在L1中输入公式=OFFSET(A1,,K1-1)即可。

希望能帮到你。


如果不考虑问题2,那也不能用“函数公式”来设置单元格的格式,只能用宏来实现,可在sheet2表的自身模块中输入下面代码:

Private Sub Worksheet_Activate()
With Sheet1
x = .Range("a65536").End(xlUp).Row
For i = 1 To x 'sheet1表的行数
    For j = 1 To 9 'A列到I列
        If .Cells(i, j).Font.ColorIndex = 3 Then
            Cells(i, j).Font.ColorIndex = 3
            Cells(i, 11) = .Cells(i, j) 'K列等于sheet1的红色值
            Cells(i, 12) = Cells(i, j) 'L列等于sheet2的红色值
        End If
    Next
Next
End With
End Sub

效果见附件

温馨提示:答案为网友推荐,仅供参考
相似回答