Visual Basic for Applications (VBA) Ερωτήσεις / Απαντήσεις σε σχέση με τη χρήση της VBA. |
| Εργαλεία Θεμάτων | Τρόποι εμφάνισης |
#1
| |||
| |||
offset στην VBA
Γεια σε όλους παιδιά Έχω σε ένα φύλλο στο Excel, στην περιοχή C5:D6, κάποια νούμερα και στο κελί F5 υπολογίζω την ορίζουσα αυτής της περιοχής, με την συνάρτηση MDETERM(C5:D6). Τώρα, στο κέλι H5, υπολογίζω πάλι τα ίδια, αλλά αυτήν την φορά, βάζοντας μεσά στον τύπο την συνάρτηση OFFSET(), με την μορφή, MDETERM(OFFSET(A1;4;2):OFFSET(A1;5;3)). Πως γράφεται αυτή η συνάρτηση (MDETERM(OFFSET(A1;4;2):OFFSET(A1;5;3))) σε κώδικα VBA; Όσο και να προσπάθησα, κάνοντας παραλλαγές, δεν κατάφερα να το κάνω να δουλέψει σε κώδικα. Υ. Γ. Ουσιαστικά αυτό που θέλω να πετύχω, είναι να δημουργώ μέσα σε κώδικα, μεταβλητά Range, με αναφορά κάποιο κελί και μετά να βάζω την OFFSET() για να έχω μεταβλητό, πάνω και κάτω όριο. Ευχαριστώ. |
#2
| ||||
| ||||
Γεια σου Γιώργο! Το αποτέλεσμα μιας καταγραφής μακροεντολής μας βοηθά στη προκειμένη περίπτωση: Κώδικας: Sub Test1() ActiveCell.FormulaR1C1 = "=MDETERM(OFFSET(R[-4]C[-7],4,2):OFFSET(R[-4]C[-7],5,3))" End Sub
Σύμφωνα με τη βοήθεια της Microsoft η συνάρτηση MDETERM επιστρέφει την τιμή σφάλματος #ΤΙΜΗ! όταν:
Καλή συνέχεια! Με εκτίμηση Τάσος
__________________ Ms-Office Development Team Ανάπτυξη επαγγελματικών εφαρμογών Τελευταία επεξεργασία από το χρήστη Tasos : 27-11-19 στις 14:50. |
#3
| |||
| |||
Ευχαριστώ πολύ Τάσο μόλις πριν απο λίγο το είχα βρει και εγώ. Το λάθος ήταν ότι χρησιμοποιούσα το ; αντί το , μεταξύ των παραμέτρων. Είμαι αρχάριος ακόμη. Να σε ρωτήσω και κάτι άλλο. Μπορούμε να βάζουμε γενικά, μέσα στον τύπο της φόρμουλας και μεταβλητές; Για παράδειγμα έχω βάλει όλην την προηγούμενη φόρμουλα μέσα σε ένα loop και στην θέση των γραμμών και στηλών της OFFSET έχω βάλει την μεταβλητή i του βρόγχου (for i=1 to 3) , με σκοπό να "παίζω" με γραμμές και στήλες, αλλά δεν με δουλεύει. Αν βάλω σταθερά νούμερα, δουλεύει. Έχω κάνει κάπου λάθος, ή πρέπει όλοι οι παράμετροι να είναι σταθεροί αριθμοί; Ευχαριστώ. |
#4
| ||||
| ||||
Γιώργο μου νομίζω ότι ο τύπος μπορεί να απλοποιηθεί ως εξής: Κώδικας: =MDETERM(OFFSET(A1;4;2;2;2)) Κώδικας: ActiveCell.FormulaR1C1 = "=MDETERM(OFFSET(R[-" & var1 & "]C[-" & var2 & "],4,2,2,2))" Παράδειγμα: Κώδικας: Range("h2").Value = WorksheetFunction.MDeterm(Range("a1:b2")) Κώδικας: Sub test() Dim i As Integer Dim x As Integer For i = 0 To 6 Step 2 Range("H2").Offset(x).Value = WorksheetFunction.MDeterm(Range( _ Cells(RowIndex:=2 + i, ColumnIndex:=1 + i), _ Cells(RowIndex:=3 + i, ColumnIndex:=2 + i))) x = x + 1 Next End Sub Τάσος
__________________ Ms-Office Development Team Ανάπτυξη επαγγελματικών εφαρμογών |
#5
| |||
| |||
Ευχαριστώ πολύ Τάσο για την αναλυτική σου απάντηση και με παραδείγματα. Θα τα μελετήσω και θα τα εφαρμόσω ανάλογως. Ευχαριστώ. |
« Προηγούμενο Θέμα
|
Επόμενο Θέμα »
| |
Παρόμοια Θέματα | ||||
Θέμα | Δημιουργός | Forum | Απαντήσεις | Τελευταίο Μήνυμα |
[Excel07] Χρήση της OFFSET() | George R | Excel - Ερωτήσεις / Απαντήσεις | 4 | 30-11-18 07:36 |
[VBA] ΔΕΝ ΜΟΥ ΜΕΤΑΦΕΡΕΙ ΤΟ ΟΛΟΓΡΑΦΩΣ ΣΤΗΝ ΑΠΟΘΗΚΕΥΣΗ ΚΑΙ ΣΤΗΝ ΕΚΤΥΠΩΣΗ | ΔΗΜΗΤΡΗΣ8519 | Excel - Ερωτήσεις / Απαντήσεις | 0 | 05-08-17 22:59 |
Επιλογή εντολής στην subform απο εντολή στην Main Form | γιώργοςΚ | Access - Ερωτήσεις / Απαντήσεις | 5 | 14-11-16 20:53 |
Επιλογή offset κελιών από δυναμική περιοχή. | Σανίδας | Visual Basic for Applications (VBA) | 1 | 24-01-16 08:43 |
[ Εκθέσεις ] Άλλα έχω στην προεπισκόπιση και άλλα στην εκτύπωση!!! | prokopino | Access - Ερωτήσεις / Απαντήσεις | 12 | 19-07-10 00:29 |
Η ώρα είναι 01:17.