0

我有一个 excel 工作表,它由许多表依次组成,比如说大约 5...任何单元格中的颜色,它将报告工作簿的工作表 1 中的工作表名称,即 Sheet<> 某某在其任何一个单元格中包含红色。

到目前为止,我只能确定特定工作表中是否存在红色......但不知道如何在工作表 1 中报告相应的工作表名称。

Sub CheckColor()
Dim Row
For Row = 2 To tsheet.UsedRange.Rows.Count
For chkcol = 1 To Sheet1.UsedRange.Columns.Count
If tsheet.Cells(Row, chkcol).Interior.ColorIndex = 3 Then
    'How to report the corresponding sheet name in sheet 1???
End If
Next
Next Row

结束子

4

1 回答 1

1

首先,我认为使用 Range.Find() 和 FindFormat 会更有效:

Private Sub test()
    Application.FindFormat.Clear
    Application.FindFormat.Interior.ColorIndex = 3

    Range("A1:C3").Find(What:="", LookAt:=xlPart, SearchFormat:=True).Value = "test"
End Sub

对于您的主要问题,我认为您首先需要确定是要为所有工作表还是为子集执行代码。如果它适用于所有工作表,那么您可以简单地将上面的代码包装在 Worksheets 集合上的 for each 循环中。

如果您需要为工作表的子集执行此代码,则可以使用规则(前 4 个字符 =“abcd”)或将它们硬编码到数组中。

然后,只需检查 Find() 返回的范围是否不nothing意味着成功。如果满足条件,则当前工作表将根据需要由主工作表使用。

于 2012-12-09T03:27:53.230 回答