Επιστρέφει μια Μεταβλητή (Εκτεταμένης ακρίβειας) που καθορίζει τη θέση της πρώτης εμφάνισης μιας συμβολοσειράς μέσα σε μια άλλη.
Σύνταξη
InStr([έναρξη, ] συμβολοσειρά1; συμβολοσειρά2 [, σύγκριση ] )
Η σύνταξη της συνάρτησης InStr περιλαμβάνει τα παρακάτω ορίσματα:
| Όρισμα | Περιγραφή |
|---|---|
| έναρξη | Προαιρετικό. Αριθμητική παράσταση που ορίζει την αρχική θέση για κάθε αναζήτηση. Εάν παραλειφθεί, η αναζήτηση ξεκινά στη θέση του πρώτου χαρακτήρα. Εάν η έναρξη περιέχει την τιμή Null, προκύπτει σφάλμα. Το όρισμα έναρξη είναι υποχρεωτικό, εάν έχει καθοριστεί το όρισμα σύγκριση. |
| συμβολοσειρά1 | Υποχρεωτικό. Παράσταση συμβολοσειράς στην οποία εκτελείται η αναζήτηση. |
| συμβολοσειρά2 | Υποχρεωτικό. Η παράσταση συμβολοσειράς που αναζητείται. |
| σύγκριση | Προαιρετικό. Καθορίζει τον τύπο σύγκρισης συμβολοσειρών. Εάν το όρισμα σύγκριση είναι Null, προκύπτει σφάλμα. Εάν παραλειφθεί η σύγκριση, η ρύθμιση OptionCompare καθορίζει τον τύπο της σύγκρισης. Καθορίστε ένα έγκυρο LCID (Αναγνωριστικό τοπικών ρυθμίσεων) για να χρησιμοποιήσετε κανόνες για συγκεκριμένες τοπικές ρυθμίσεις στη σύγκριση. |
Συμβουλή
Η Δόμηση παραστάσεων διαθέτει IntelliSense, ώστε να μπορείτε να δείτε ποια ορίσματα απαιτεί η παράστασή σας.
Ρυθμίσεις
Οι ρυθμίσεις σύγκρισης ορισμάτων είναι:
| Σταθερός | Τιμή | Περιγραφή |
|---|---|---|
| vbUseCompareOption | -1 | Πραγματοποιεί μια σύγκριση χρησιμοποιώντας τη ρύθμιση της δήλωσης Option Compare . |
| 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.