VBA代码在整个工作簿中搜索特定的背景色

时间:2018-11-05 07:28:34

标签: excel vba excel-vba excel-formula

我目前正在处理一个报表项目,该报表项目在Excel文档中都包含子报表和编译报表。它总共有45张纸,但不包括“仪表板”样纸,一个验证检查纸和两个幻影纸。

所有子报表在某些单元格中都有其自己的数据验证,并带有条件格式,如果用户在其中输入错误的数据,该格式将使该单元格变为红色(RGB 192,0,0)。

我遇到的问题是,同一张纸上的2个错误数据之和可能会使数据看起来正确。但事实并非如此。

我认为可以防止这种情况发生的唯一方法是,在工作簿中的所有单元格中如果有任何一个变为红色,则进行搜索。并且我需要代码能够在可能的情况下将具有单元格的工作表自动列出到验证工作表中。预先谢谢你。

更新

我正在研究的file

2 个答案:

答案 0 :(得分:1)

尝试这是一个好的开始:

#!/usr/bin/expect -f
set cmd "python /path/to/python_script.py"
set file [lindex $argv 0]
set content [lindex $argv 1]

spawn ssh usr@local_ip
expect "assword:"
send "PWD\r"
expect "*\$ "
send "$cmd $file $content\r"
expect "*\$*"
send "exit\r"
interact

答案 1 :(得分:0)

您可以从菜单中单击“搜索”或按Ctrl + F

在输入框中输入

进行搜索;打开选项

enter image description here

单击“格式”,然后单击要搜索的格式,然后excel会找到该格式

编辑

VBA版本,用于以条件格式查找红色

您可以使用此功能在工作表中查找条件格式颜色,我已在“ TOD302(Tadika)”工作表中查找红色。

Sub findRed()

    Dim used_range As Range
    Dim i As Integer

    Sheets.Add After:=ActiveSheet
    ActiveSheet.Name = "Search Result"

    Sheets("TOD302(Tadika)").Select
    Set used_range = ActiveSheet.UsedRange

    i = 1

    Sheets("Search Result").Range("A" & i).Value = "Row"
    Sheets("Search Result").Range("B" & i).Value = "Column"
    Sheets("Search Result").Range("C" & i).Value = "address"

    i = 2
    For Each r In used_range

        If (r.DisplayFormat.Interior.Color = 192) Then

            Sheets("Search Result").Range("A" & i).Value = r.Row
            Sheets("Search Result").Range("B" & i).Value = r.Column
            Sheets("Search Result").Range("C" & i).Value = r.Address()

            i = i + 1
        End If
    Next

End Sub