Εμφάνιση ενός μόνο μηνύματος
  #5  
Παλιά 02-09-20, 10:06
Το avatar του χρήστη Tasos
Tasos Ο χρήστης Tasos δεν είναι συνδεδεμένος
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 2.035
Προεπιλογή

Καλημέρα!
Η συνάρτηση RankOf(strText As String) επιστρέφει το θέση στον (Array) που θα βρεθεί το όρισμα strText

Κώδικας:
Option Explicit

'Εδώ συμπληρώνεις με την ταξινόμηση που θέλεις
'τα στοιχεία προς σύγκριση διαχωρισμένα με ερωτηματικό.
Private Const AllStrings = "κείμενο1;κείμενο2;κείμενο3;κείμενο4;κείμενο5"

Function RankOf(strText As String) As Integer
    Dim i As Integer
    Dim MyStrings() As String
    MyStrings = Split(AllStrings, ";")
    For i = 0 To UBound(MyStrings)
        If MyStrings(i) = strText Then
            RankOf = i + 1
            Exit Function
        End If
    Next
    RankOf = 999
End Function
Θα μπορούσες αντί για συνάρτηση VBA να χρησιμοποιήσεις ένα φύλλο εργασίας για να επιτύχεις το στόχο σου.

Για δοκιμή:

Σε ένα νέο φύλλο βάλε τα κείμενα σου (κείμενο1, κείενο2 κλπ.) στη στήλη Α με την ταξινόμηση που θέλεις ξεκινώντας από το κελί Α1.

Κατόπιν στο κελί Β1 πληκτρολόγησε το ζητούμενο.

Η παρακάτω συνάρτηση που θα σου επιστρέψει τη θέση του ζητούμενου στη στήλη Α1:

=IFERROR(MATCH(B1;A:A;0);999)

Καλή συνέχεια!

Τάσος
__________________
Ms-Office Development Team
Ανάπτυξη επαγγελματικών εφαρμογών
Απάντηση με παράθεση