
02-09-20, 10:06
|
 | Διαχειριστής Όνομα: Τάσος Φιλοξενιδης Έκδοση λογισμικού 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 Ανάπτυξη επαγγελματικών εφαρμογών |