突出显示 Excel 2016 中哪些工作表的特定单元格包含正值

突出显示 Excel 2016 中哪些工作表的特定单元格包含正值

我有一组数百张布局相同的工作表,但每张工作表包含不同的数据。我想列出所有工作表,例如单元格 E532=1 或 E532>0。这能做到吗?如果可以,怎么做?如果有帮助,我已经安装了 Kutools。

非常感谢。

答案1

尝试一下:

Sub LookFor()
    Dim msg As String, addy As String, v As Variant
    Dim w As Worksheet
    msg = ""
    addy = Application.InputBox(Prompt:="enter cell address", Type:=2)
    v = Application.InputBox(Prompt:="enter cell value", Type:=3)

    For Each w In Worksheets
        If w.Range(addy) = v Then
            msg = msg & vbCrLf & w.Name
        End If
    Next

    If msg = "" Then
        MsgBox "nothing found"
    Else
        MsgBox msg
    End If
End Sub

答案2

以下 VBA 子过程将识别活动工作簿中单元格 E532 中包含大于 0 的值的工作表的名称。工作表的名称将输出到即时窗口。此外,工作表选项卡的颜色将更改为黄色。

Sub ListWorksheets()

For Each ws In Worksheets
    TestValue = ws.Range("E532").Value
    If (TestValue > 0) Then
      Debug.Print ws.Name
      ws.Tab.ColorIndex = 6
    End If
Next ws

End Sub

为了创建符合条件的工作表列表,请创建一个新工作表并运行以下宏。工作表列表将从运行宏时处于活动状态的单元格开始输出。

Sub ListWorksheetsAtActiveColumn()

'Defines the row offset of the current cell to list the worksheets
Dim RowNumber As Long

RowNumber = 0

For Each ws In Worksheets
    TestValue = ws.Range("E532").Value
    If (TestValue > 0) Then
      Debug.Print ws.Name
      'Changes the color of the worksheet tab to yellow
      ws.Tab.ColorIndex = 6
      'Creates a list of worksheet names that meet the test starting
      'at the current cell
      ActiveCell.Offset(RowNumber, 0).Value = ws.Name
      RowNumber = RowNumber + 1
    End If
Next ws

End Sub

相关内容