用于检查每个工作表的VBA代码,找到包含= TODAY()函数的单元格,然后选择该单元格

时间:2012-11-06 21:35:16

标签: excel vba excel-vba

我有一个包含12个工作表的工作簿,每个工作表都命名为JANUARY到FEBRUARY。

只有当前月份的工作表(例如,NOVEMBER)才能包含一个包含mm / dd / yyyy日期格式的函数=TODAY()的单元格。

当我打开工作簿时,我想自动激活包含此单元格的工作表(在我的实例中为单元格N2)和Select。我真的是一个慢慢学习的新手,但知识很少,找不到我需要的东西。这是我到目前为止所做的,但它不起作用:

Sub ChooseSheet()
Dim SearchString As Variant

SearchString = "TODAY()"       'string I am searching for

Do Until SearchString = "TODAY()"
If Application.WorksheetFunction.CountIf(Sheets("Sheet1").Columns(14), SearchString) > 0 Then
Worksheets("Sheet1").Activate
            End If
        Exit Do                
Loop

End Sub

2 个答案:

答案 0 :(得分:2)

这对我有用。

Sub searchToday()

    Dim sh As Worksheet
    Dim found As Range

    For Each sh In ActiveWorkbook.Worksheets
        Set found = sh.Cells.Find(what:="=TODAY()", LookIn:=xlFormulas)
        If Not found Is Nothing Then
           sh.Activate
           found.Select
           Exit Sub
        End If
    Next sh

End Sub

答案 1 :(得分:1)

Sub Test()

Dim ws As Worksheet
Dim f As Range

    For Each ws In ActiveWorkbook.Worksheets
        Set f = ws.Cells.Find(What:="=TODAY()", LookIn:=xlFormulas, LookAt:=xlWhole)
        If Not f Is Nothing Then
            ws.Activate
            f.Select
            Exit For
        End If
    Next ws

End Sub