Excel VBAsearchbutton

我正在尝试使用文本框和命令button来search我的整个工作簿中的特定单词或值。 例如,“3132”或“作业说明”。 到目前为止,我能够search我正在工作的工作表,但是我无法search工作簿的其余部分。 另外,一些工作表是隐藏的。 任何洞察这将是有益的,并帮助我一吨! 我在下面列出了我的正确程序:

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 

祝你有个好的一天!

尝试类似这样的操作,它在循环工作簿中的表格时使用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 

您需要遍历workbook.worksheets集合中的workbook.worksheets表对象数组。