簡體   English   中英

Excel VBA搜索按鈕

[英]Excel VBA Search Button

我正在嘗試使用文本框和命令按鈕在我的整個工作簿中搜索特定的單詞或值。 例如,“ 3132”或“工作說明”。 到目前為止,我可以搜索正在使用的工作表,但無法搜索工作簿的其余部分。 此外,某些工作表是隱藏的。 任何對此的見識都將是有益的,並且可以幫助我很多! 我在下面列出了我的當前程序:

Private Sub CommandButton6_Click()
    Dim strFindWhat As String
    strFindWhat = TextBox1.Text

    On Error GoTo ErrorMessage

    Cells.Find(What:=strFindWhat, After:=ActiveCell, LookIn:=xlFormulas, LookAt _
        :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
        False).Select
    Exit Sub

    ErrorMessage:
        MsgBox ("The data you are searching for does not exist")
End Sub

祝你有個好的一天!

您需要遍歷workbook.worksheets集合中的workbook.worksheets表對象數組。

嘗試類似這樣的方法,該方法在工作簿中的工作表上循環時使用FindNext方法。

Sub FindLoopSheets()
Dim srchString$
Dim w As Integer
Dim wsName As String
Dim rng As Range
Dim fndRange As Range
Dim nxtRange As Range

srchString = Application.InputBox("Enter the value to search for", "Search Query")

If srchString = vbNullString Then
    MsgBox "No value entered.", vbInformation
    Exit Sub
End If

For w = 1 To Sheets.Count
    With Sheets(w)
        wsName = .Name
        Debug.Print "Beginning search on " & wsName

        Set rng = .Cells.Find(What:=srchString, After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
            xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
            , SearchFormat:=False)

        If Not rng Is Nothing Then
            Set fndRange = rng
            Do
                Set nxtRange = .Cells.FindNext(After:=fndRange)

                    Debug.Print Sheets(w).Name & "!" & nxtRange.Address
                    Set fndRange = nxtRange

            Loop Until fndRange.Address = rng.Address

        Else:
            Debug.Print srchString & " was not found on " & wsName

        End If
    End With
Next w

End Sub

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM