Καλησπέρα σε όλους!
Έχετε δίκιο Θανάση και Φώτη.
Και εγώ ήμουν και είμαι της γνώμης (και το έχω αναφέρει αρκετές φορές στο φόρουμ) ότι η Indirect() δεν είναι ότι καλύτερο ειδικά σε πολλά δεδομένα.
Την πρότεινα (λάθος μου) επειδή αυτή μου ήρθε πρώτη στο μυαλό και επειδή υπέθεσα ότι επρόκειτο για 50-100 γραμμές.
Αν όμως πρόκειται για πολλές χιλιάδες δεδομένα, ίσως πρέπει να αποφύγει κανείς τους τύπους για να ελαττώσει τους υπολογισμούς
της εφαρμογής και να αυξήσει την απόδοση της,
Ενδεικτικά, αν αντί για τύπους καταχωρηθούν σταθερές με
VBA, o χρόνος που θα χρειαστεί για 500.000 κελιά σε ένα μέσο υπολογιστή είναι κάτω από 5 δευτερόλεπτα με αποτέλεσμα να μειωθούν δραματικά οι χρόνοι ανοίγματος, υπολογισμού και αποθήκευσης του αρχείου.
Επισυνάπτω ένα παράδειγμα για δοκιμές που θα φανεί χρήσιμο περισσότερο σε αυτούς που εργάζονται σε υπολογιστές με μη ελληνική τοπική ρύθμιση συστήματος.
Στο παράδειγμα αυτό:
Τα ονόματα των μηνών της Ελληνικής εμφανίζονται στην γενική πτώση (με χρήση Πίνακα (Array) και της συνάρτησης ChrW() στη
VB)
Οι ημέρες εμφανίζονται στα ελληνικά με χρήση του παρακάτω Βρόχου επανάληψης:
Κώδικας:
For i = 1 To 7
GreekDayNames(i) = WorksheetFunction.Text(DateSerial(1, 1, i), "[$-408]dddd")
Next
Έχω επίσης προσθέσει τη συνάρτηση GetVbChar() που μας διευκολύνει να αντικαθιστούμε
τα ελληνικά μέσα στον
VBE (απαραίτητο σε μη ελληνικούς υπολογιστές).
Συμπληρώστε ας πούμε 500.000 δεδομένα και κάντε τις δοκιμές σας.
Καλό ξημέρωμα!
Τάσος