• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Soru Birden fazla çalışma kitabında tek seferde arama yapmak?

faruk4435

Altın Üye
Katılım
4 Şubat 2019
Mesajlar
15
Excel Vers. ve Dili
Visual Basic, C#, C++
Kolay gelsin. 39 adet excel çalışma kitabı ve içlerinde birden fazla sayfa mevcut ve veriler yaklaşık olarak 1000'de yakın veya bir tık fazla. Tek seferde tüm çalışma kitaplarında arama yapmak istiyorum. Bunun için nasıl bir yol izlemeliyim? Makro kodu var mı?
 
Sub SearchFolders() 'UpdatebyKutoolsforExcel20200913 Dim xFso As Object Dim xFld As Object Dim xStrSearch As String Dim xStrPath As String Dim xStrFile As String Dim xOut As Worksheet Dim xWb As Workbook Dim xWk As Worksheet Dim xRow As Long Dim xFound As Range Dim xStrAddress As String Dim xFileDialog As FileDialog Dim xUpdate As Boolean Dim xCount As Long Dim xAWB As Workbook Dim xAWBStrPath As String Dim xBol As Boolean Set xAWB = ActiveWorkbook xAWBStrPath = xAWB.Path & "\" & xAWB.Name On Error GoTo ErrHandler Set xFileDialog = Application.FileDialog(msoFileDialogFolderPicker) xFileDialog.AllowMultiSelect = False xFileDialog.Title = "Select a forlder" If xFileDialog.Show = -1 Then xStrPath = xFileDialog.SelectedItems(1) End If If xStrPath = "" Then Exit Sub xStrSearch = "KTE" xUpdate = Application.ScreenUpdating Application.ScreenUpdating = False Set xOut = Worksheets.Add xRow = 1 With xOut .Cells(xRow, 1) = "Workbook" .Cells(xRow, 2) = "Worksheet" .Cells(xRow, 3) = "Cell" .Cells(xRow, 4) = "Text in Cell" Set xFso = CreateObject("Scripting.FileSystemObject") Set xFld = xFso.GetFolder(xStrPath) xStrFile = Dir(xStrPath & "\*.xls*") Do While xStrFile <> "" xBol = False If (xStrPath & "\" & xStrFile) = xAWBStrPath Then xBol = True Set xWb = xAWB Else Set xWb = Workbooks.Open(Filename:=xStrPath & "\" & xStrFile, UpdateLinks:=0, ReadOnly:=True, AddToMRU:=False) End If For Each xWk In xWb.Worksheets If xBol And (xWk.Name = .Name) Then Else Set xFound = xWk.UsedRange.Find(xStrSearch) If Not xFound Is Nothing Then xStrAddress = xFound.Address End If Do If xFound Is Nothing Then Exit Do Else xCount = xCount + 1 xRow = xRow + 1 .Cells(xRow, 1) = xWb.Name .Cells(xRow, 2) = xWk.Name .Cells(xRow, 3) = xFound.Address .Cells(xRow, 4) = xFound.Value End If Set xFound = xWk.Cells.FindNext(After:=xFound) Loop While xStrAddress <> xFound.Address End If Next If Not xBol Then xWb.Close (False) End If xStrFile = Dir Loop .Columns("A:D").EntireColumn.AutoFit End With MsgBox xCount & " cells have been found", , "Kutools for Excel" ExitHandler: Set xOut = Nothing Set xWk = Nothing Set xWb = Nothing Set xFld = Nothing Set xFso = Nothing Application.ScreenUpdating = xUpdate Exit Sub ErrHandler: MsgBox Err.Description, vbExclamation Resume ExitHandler End Sub
Şöyle bir kod buldum ama bunu birden fazla arama yapmak için kullanabilir miyim? Ekstradan bir kod daha eklemek mümkün mü? xStrSearch = "KTE" KTE yazan yeri değiştirince 1 arama yapabiliyor, bunu çoklu arama için nasıl düzenlemek gerekiyor?
 
Geri
Üst