| Excel - Ερωτήσεις / Απαντήσεις Ότι έχει σχέση με συναρτήσεις, μορφοποίηση, εκτυπώσεις γραφήματα κτλ. |
![]() |
| | Εργαλεία Θεμάτων | Τρόποι εμφάνισης |
| |
|
#1
| |||
| |||
|
Γεια σε όλους παιδιά, με υγεία Θέλω σε κώδικα VBA να κάνω τα παρακάτω: Θέλω σε ένα loop από το i = 1 έως 10, αρχικά να εξάγεται, με την RANDBETWEEN( i; 9 + i ) ένας αριθμός (μεταξύ i και 9 + i), μετά με αυτόν τον αριθμό που θα δώσει η RANDBETWEEN(i;9+i) να υπολογίζει την τετραγωνική ρίζα αυτού του αριθμού και τέλος να αποθηκεύει σε έναν πίνακα RAND_SQRT(i), τους 10 αυτούς τους αριθμούς (τις ρίζες δηλαδή). (Επιπροσθέτως θα ήθελα μέσα στο loop, να υπάρχει ένα msgbox, όπου σε κάθε γύρο του loop, να μου δείχνει δίπλα δίπλα τα i και RAND_SQRT(i), όπως τα υπολογίζει). Υ.Γ. Δεν θέλω καμία αναφορά ή διαδικασία σε κελιά των φύλλων. Ευχαριστώ πολύ παιδιά. |
|
#2
| |||
| |||
|
Καλημέρα Γιώργο δες μια πρόταση στο συνημμένο |
|
#3
| |||
| |||
|
Ευχαριστώ πολύ Γιώργο, αυτό ήθελα θα ήθελα σε παρακαλώ, αν μπορείς, να με διαφωτίσεις και στα παρακάτω: 1. Για να βάζω δηλαδή συναρτήσεις του Excel, όπως π.χ. την Randbetween, θα πρέπει κάθε φορά να βάζω οπωσδήποτε: Application.WorksheetFunction.Η συνάρτηση που θέλω, ή μππρεί και να γίνει αλλιώς, δηλαδή με κάτι σαν π.χ. RNDBT(i) = Randbetween(1;100). Γιατί για παράδειγμα αν μπλέξω κελλιά π.χ. Cells(1,i) = Randbetween(1;100), τότε δουλεύει 2. Το sqrτ() από το απλό φύλλο, διαφοροποιείται στην VBA και γίνεται sqr(); Γιατί αυτό; Υπάρχουν και άλλες συναρήσεις που διαφοροποιούνται; και 3. Γιατί δεν μου εμφάνισε τον κώδικα, από το εικονίδιο Μακροεντολές στην κορδέλα; Ευχαριστώ πολύ για το χρόνο σου. |
|
#4
| |||
| |||
|
1) Οι συναρτήσεις του Excel δεν είναι εγγενείς συναρτήσεις της VBA. Συνεπώς στο περιβάλλον της VBA χρειάζεται να προηγηθεί η πληροφορία (Application.WorksheetFunction) της θέσης της συνάρτησης (της θέσης όπου η VBA θα βρει τη συνάρτηση). 2) Η VB και το Office είναι δύο προϊόντα που αναπτύχθηκαν ανεξάρτητα. Κάποια στιγμή όμως η Microsoft, ενσωμάτωσε ένα τμήμα της VB (VBA) στο Office και έδωσε και σε άλλες εταιρείες αυτό το δικαίωμα. Θυμάμαι Autocad με ενσωματωμένη VBA. Έτσι δικαιολογούνται τα διαφορετικά ονόματα συναρτήσεων αλλά και συναρτήσεις με διαφορετική σημασία ενώ έχουν το ίδιο όνομα. Χαρακτηριστικό παράδειγμα: Η συνάρτηση (VBA) Date() ταυτίζεται με την TODAY() του Excel (στον κώδικα: WorksheetFunction.TODAY(). Η συνάρτηση (VBA) Dateserial() ταυτίζεται με την Date() του Excel (στον κώδικα: WorksheetFunction.DATE(). 3) Στις μακροεντολές εμφανίζονται μόνο αυτές που καταγράφονται στις ειδικές μονάδες κώδικα (Modules). Αυτή έχει καταγραφεί στον κώδικα του φύλλου. Για έλεγχο: δεξί κλικ στην καρτέλα του φύλλου (Tab) και επιλογή [Προβολή Κώδικα]. |
|
#5
| |||
| |||
|
Ευχαριστώ πολύ Γιώργο για την κατατοπιστική απάντηση. Σχετικά με τις συναρτήσεις φύλλων και την: Application.WorksheetFunction.RandBetween() έκανα κάποιους πειραματισμούς και διαπίστωσα ότι και oi παρακάτω, απλοποιημένες μορφές, φαίνεται να δουλεύουν κανονικά: 1) Application.RandBetween(1, 100) 2) WorksheetFunction.RandBetween(1, 100) Μπορούμε γενικά να κάνουμε τέτοιες απλοποιήσεις ή κάνουμε κάποιο σφάλμα; Και ένα δεύτερο ερώτημα, έχει διαφορά αν γράφουμε κώδικα στις Μακροεντολές ή στο Φύλλο ? Ευχαριστώ. |
|
#6
| |||
| |||
|
1) Εφόσον οι απλοποιημένες διαδρομές θέσεις δουλεύουν, προφανώς δεν υπάρχει κανένα λάθος. Υπάρχουν και περιπτώσεις που απαιτείται η πλήρης διαδρομή. Στην περίπτωση αυτή αν χρησιμοποιήσουμε κάποια απλοποίηση θα προκληθεί λάθος στον κώδικα οπότε αλλάζουμε τη διαδρομή σε πλήρη. 2) Ο κώδικας στο φύλλο είναι για το συγκεκριμένο φύλλο, ενώ ο κώδικας στις ειδικές μονάδες κώδικα (modules) για όλο το βιβλίο (όλα τα φύλλα). Κλείνοντας επισημαίνω τη μεγάλη σημασία του πειραματισμού στην εκμάθηση του κώδικα. |
|
#7
| |||
| |||
|
Ευχαρισττώ Γιώργο για τις απαντήσεις Σχετικά με τον κώδικα πειραματίζομαι συνεχώς, αλλά κάθε τόσο προκύπτουν και κάποιες απορίες που θέλεις να λύσεις, για να μάθεις και όχι απλά να "παπαγαλίζεις" τους κώδικες. |
|
#8
| |||
| |||
|
Να είσαι καλά και καλή συνέχεια.
|
![]() |
« Προηγούμενο Θέμα
|
Επόμενο Θέμα »
| |
| ||||
| Θέμα | Δημιουργός | Forum | Απαντήσεις | Τελευταίο Μήνυμα |
| [Συναρτήσεις] τύπος συναρτήσεις | maimos77 | Excel - Ερωτήσεις / Απαντήσεις | 3 | 17-10-18 21:48 |
| συναρτήσεις access | kanimas | Access - Ερωτήσεις / Απαντήσεις | 0 | 22-07-17 10:32 |
| [Συναρτήσεις] Χαρακτήρες σε συναρτήσεις | gianast | Excel - Ερωτήσεις / Απαντήσεις | 3 | 04-10-13 09:09 |
| [Συναρτήσεις] Συναρτησεις IF & AND | manolis | Excel - Ερωτήσεις / Απαντήσεις | 6 | 14-11-10 10:16 |
Η ώρα είναι 20:36.


Υβριδικός τρόπος

