Επιστρέφει μια Μεταβλητή (Εκτεταμένης ακρίβειας) που καθορίζει τη θέση της πρώτης εμφάνισης μιας συμβολοσειράς μέσα σε μια άλλη.
Σύνταξη
InStr ([έναρξη; ] συμβολοσειρά1, συμβολοσειρά2 [, σύγκριση ] )
Η σύνταξη της συνάρτησης InStr περιλαμβάνει τα παρακάτω ορίσματα:
Όρισμα |
Περιγραφή |
---|---|
έναρξη |
Προαιρετικό. Αριθμητική παράσταση που ορίζει την αρχική θέση για κάθε αναζήτηση. Εάν παραλειφθεί, η αναζήτηση ξεκινά στη θέση του πρώτου χαρακτήρα. Εάν η έναρξη περιέχει την τιμή Null, προκύπτει σφάλμα. Το όρισμα έναρξη είναι υποχρεωτικό, εάν έχει καθοριστεί το όρισμα σύγκριση. |
συμβολοσειρά1 |
Υποχρεωτικό. Παράσταση συμβολοσειράς στην οποία γίνεται αναζήτηση. |
συμβολοσειρά2 |
Υποχρεωτικό. Η παράσταση συμβολοσειράς που επιδιώκετε. |
σύγκριση |
Προαιρετικό. Καθορίζει τον τύπο του σύγκριση συμβολοσειρών. Εάν το όρισμα σύγκριση είναι Null, προκύπτει σφάλμα. Εάν παραλειφθεί το όρισμα σύγκριση, η ρύθμιση Σύγκρισηεπιλογών καθορίζει τον τύπο σύγκρισης. Καθορίστε ένα έγκυρο LCID (LocaleID) για να χρησιμοποιήσετε κανόνες ειδικά για τις τοπικές ρυθμίσεις κατά τη σύγκριση. |
Συμβουλή: Η Δόμηση παραστάσεων διαθέτει IntelliSense, ώστε να μπορείτε να δείτε ποια ορίσματα απαιτεί η παράσταση.
Ρυθμίσεις
Οι ρυθμίσεις του ορίσματος σύγκρισης είναι:
Σταθερά |
Τιμή |
Περιγραφή |
---|---|---|
vbUseCompareOption |
-1 |
Εκτελεί μια σύγκριση χρησιμοποιώντας τη ρύθμιση της πρότασης Σύγκριση επιλογών . |
vbBinaryCompare |
0 |
Εκτελεί μια δυαδική σύγκριση. |
vbTextCompare |
1 |
Εκτελεί σύγκριση με βάση το κείμενο. |
Τιμές επιστροφής
Εάν |
Η συνάρτηση InStr επιστρέφει |
---|---|
η συμβολοσειρά1 έχει μηδενικό μήκος |
0 |
η συμβολοσειρά1 είναι Null |
Null |
η συμβολοσειρά2 έχει μηδενικό μήκος |
έναρξη |
η συμβολοσειρά2 είναι Null |
Null |
η συμβολοσειρά2 δεν βρέθηκε |
0 |
η συμβολοσειρά2 βρίσκεται μέσα στη συμβολοσειρά1 |
Θέση στην οποία εντοπίζεται η αντιστοιχία |
έναρξη > συμβολοσειρά2 |
0 |
Παρατηρήσεις
Η συνάρτηση InStrB χρησιμοποιείται με δεδομένα byte που περιέχονται σε μια συμβολοσειρά. Αντί να επιστρέψει τη θέση χαρακτήρα της πρώτης εμφάνισης μιας συμβολοσειράς μέσα σε μια άλλη, η συνάρτηση InStrB επιστρέφει τη θέση των byte.
Παραδείγματα
Χρήση της συνάρτησης InStr σε μια παράσταση Μπορείτε να χρησιμοποιήσετε το InStr οπουδήποτε μπορείτε να χρησιμοποιήσετε παραστάσεις. Για παράδειγμα, εάν θέλετε να βρείτε τη θέση της πρώτης περιόδου (.) σε ένα πεδίο που περιέχει διευθύνσεις IP (με το όνομα IPAddress), μπορείτε να χρησιμοποιήσετε το InStr για να το βρείτε, ως εξής:
InStr(1;[IPAddress];".")
Η συνάρτηση InStr εξετάζει κάθε τιμή στο πεδίο IPAddress και επιστρέφει τη θέση της πρώτης περιόδου. Ως εκ τούτου, εάν το πρώτο τμήμα της διεύθυνσης IP είναι 10., η συνάρτηση επιστρέφει την τιμή 3.
Στη συνέχεια, μπορείτε να χρησιμοποιήσετε άλλες συναρτήσεις, που λειτουργούν με βάση το αποτέλεσμα της συνάρτησης InStr , για να εξαγάγετε το τμήμα της διεύθυνσης IP που προηγείται της πρώτης περιόδου, ως εξής:
Left([IPAddress],(InStr(1;[IPAddress];".") -1))
Σε αυτό το παράδειγμα, InStr(1;[IPAddress],".") επιστρέφει τη θέση της πρώτης περιόδου. Η αφαίρεση του 1 καθορίζει τον αριθμό των χαρακτήρων που προηγούνται της πρώτης περιόδου, σε αυτή την περίπτωση, του 2. Στη συνέχεια, η συνάρτηση Left εξάγει πολλούς χαρακτήρες από το αριστερό τμήμα του πεδίου IPAddress, επιστρέφοντας την τιμή 10.
Χρήση του κώδικα InStr σε VBA
Σημείωση: Παραδείγματα που ακολουθούν δείχνουν τη χρήση αυτής της συνάρτησης σε μια λειτουργική μονάδα Visual Basic for Applications (VBA).
Αυτό το παράδειγμα χρησιμοποιεί τη συνάρτηση InStr για να επιστρέψει τη θέση της πρώτης εμφάνισης μιας συμβολοσειράς μέσα σε μια άλλη.
Dim SearchString, SearchChar, MyPos
SearchString ="XXpXXpXXPXXP" ' String to search in.
SearchChar = "P" ' Search for "P".
' A textual comparison starting at position 4. Returns 6.
MyPos = Instr(4, SearchString, SearchChar, 1)
' A binary comparison starting at position 1. Returns 9.
MyPos = Instr(1, SearchString, SearchChar, 0)
' Comparison is binary by default
' (last argument is omitted).
MyPos = Instr(SearchString, SearchChar) ' Returns 9.
MyPos = Instr(1, SearchString, "W") ' Returns 0.