Προς το περιεχόμενο

Macro στο Excel για αναζήτηση αριθμού σε πολλαπλά txt αρχεία


marios07

Προτεινόμενες αναρτήσεις

Δημοσ.

Καλησπέρα παιδιά,

 

Προσπαθούσα να συντάξω μια VBA macro για την δουλειά μου με την οποία θα μπορώ να ανοίγω ένα ένα κάποια txt αρχεία μέσα στο excel ώστε να βρώ έναν συγκεκριμένο αριθμό.

 

Με λεπτομέρεια: Η μακρο θα πρέπει να ανοίγει ένα τχτ file μέσα σε ένα folder και να κάνει search όλα τα cells για έναν συγκεκριμένο αριθμό που υπάρχει μέσα σε αυτό το txt. Αν δεν βρεί τίποτα θέλω να κλείνει το txt χωρίς να αποθηκεύσει τίποτα και να ανοίξει το επόμενο. Αν τελικά το βρει θέλω να σταματάει η macro έτσι ώστε να μου μείνει αυτό το αρχείο ανοιχτώ στην οθόνη.

 

Μέχρι στιγμής έχω γράψει αυτό αλλά όταν το τρέχω μου βγάζει error:

 

Sub openAllfilesInALocation()

Dim i As Integer, wb As Workbook

 

With Application.FileSearch

.NewSearch

.LookIn = "C:\test_folder\"

.SearchSubFolders = False

.Filename = "*.txt"

.Execute

For i = 1 To .FoundFiles.Count

 

'Open each workbook

 

Set wb = Workbooks.Open(Filename:=.FoundFiles(i))

 

'Perform the operation on the open workbook

 

Cells.Select

 

Selection.Find(what:="187956", after:=ActiveCell, LookIn:=xlFormulas, _

LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _

MatchCase:=False, SearchFormat:=False).Activate

 

If Selection.Find = True Then

Exit Sub

End If

 

'Dont Save and close the workbook

 

wb.Close savechanges:=False

 

'On to the next workbook

 

Next i

End With

End Sub

 

 

Μήπως κανείς που κατέχει το αντικείμενο μπορεί να με βοηθήσει?

 

Σας ευχαριστώ πολύ

Δημοσ.
Καλησπέρα παιδιά,

 

Προσπαθούσα να συντάξω μια VBA macro για την δουλειά μου με την οποία θα μπορώ να ανοίγω ένα ένα κάποια txt αρχεία μέσα στο excel ώστε να βρώ έναν συγκεκριμένο αριθμό.

 

Με λεπτομέρεια: Η μακρο θα πρέπει να ανοίγει ένα τχτ file μέσα σε ένα folder και να κάνει search όλα τα cells για έναν συγκεκριμένο αριθμό που υπάρχει μέσα σε αυτό το txt. Αν δεν βρεί τίποτα θέλω να κλείνει το txt χωρίς να αποθηκεύσει τίποτα και να ανοίξει το επόμενο. Αν τελικά το βρει θέλω να σταματάει η macro έτσι ώστε να μου μείνει αυτό το αρχείο ανοιχτώ στην οθόνη.

 

Μέχρι στιγμής έχω γράψει αυτό αλλά όταν το τρέχω μου βγάζει error:

 

Sub openAllfilesInALocation()

Dim i As Integer, wb As Workbook

 

With Application.FileSearch

.NewSearch

.LookIn = "C:\test_folder\"

.SearchSubFolders = False

.Filename = "*.txt"

.Execute

For i = 1 To .FoundFiles.Count

 

'Open each workbook

 

Set wb = Workbooks.Open(Filename:=.FoundFiles(i))

 

'Perform the operation on the open workbook

 

Cells.Select

 

Selection.Find(what:="187956", after:=ActiveCell, LookIn:=xlFormulas, _

LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _

MatchCase:=False, SearchFormat:=False).Activate

 

If Selection.Find = True Then

Exit Sub

End If

 

'Dont Save and close the workbook

 

wb.Close savechanges:=False

 

'On to the next workbook

 

Next i

End With

End Sub

 

 

Μήπως κανείς που κατέχει το αντικείμενο μπορεί να με βοηθήσει?

 

Σας ευχαριστώ πολύ

 

Σπάσε το πρόγραμμα σου σε ρουτίνες, διαδικαστικός προγραμματισμός. Θα φτιάξουμε μία ρουτίνα σε VBA που θα ψάχνει σε ένα αρχείο με βάση το filename και θα επιστρέφει αν βρήκε τον αριθμό ή όχι. Ο αριθμός θα είναι optional argument. Αυτό θα είναι κάπως έτσι:

 

>
public function IsNumberInFile(ByVal filename as String, optional Number as Integer) as Boolean
' Code....
end function

 

Κατόπιν θα φτιάξεις μία γενική ρουτίνα που θα την τρέχει το macro σου που με βάση τα ονόματα των αρχείων που θα σου επιτρέπει η Dir$ θα κοιτάζεις αν βρήκες αυτό που θέλεις, δηλαδή το αρχείο, τέλος με την Shell θα ανοίξεις το αρχείο με το notepad.exe καλώντας το process που θα ανοίξει το αρχείο. Μπορώ να σου τα γράψω αν κολλήσεις αλλά από ότι βλέπω κάτι ξέρεις, συνέχισε και θα τα καταφέρεις..

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...