Excel VBA Formulas - Ο απόλυτος οδηγός

Αυτό το σεμινάριο θα σας διδάξει πώς να δημιουργείτε τύπους κυττάρων χρησιμοποιώντας VBA.

Τύποι σε VBA

Χρησιμοποιώντας το VBA, μπορείτε να γράψετε τύπους απευθείας σε Ranges ή Cells στο Excel. Μοιάζει με αυτό:

123456789 Sub Formula_Example ()«Αντιστοιχίστε έναν σκληρό κωδικοποιημένο τύπο σε ένα κελίΕύρος ("b3"). Τύπος = "= b1+b2"«Εκχωρήστε έναν ευέλικτο τύπο σε μια σειρά κελιώνΕύρος ("d1: d100"). ΤύποςR1C1 = "= RC2+RC3"Τέλος υπο

Υπάρχουν δύο ιδιότητες Range που πρέπει να γνωρίζετε:

  • .Τύπος - Δημιουργεί έναν ακριβή τύπο (σκληρές κωδικοποιημένες αναφορές κελιών). Καλό για την προσθήκη ενός τύπου σε ένα κελί.
  • .FormulaR1C1 - Δημιουργεί μια ευέλικτη φόρμουλα. Καλό για την προσθήκη τύπων σε μια περιοχή κελιών όπου οι αναφορές κελιών θα πρέπει να αλλάξουν.

Για απλούς τύπους, είναι καλό να χρησιμοποιήσετε την ιδιότητα .Formula. Ωστόσο, για όλα τα άλλα, συνιστούμε τη χρήση του Macro Recorder

Macro Recorder and Cell Formulas

Το Macro Recorder είναι το εργαλείο μας για τη σύνταξη τύπων κελιών με VBA. Μπορείτε απλά:

  • Ξεκινήστε την εγγραφή
  • Πληκτρολογήστε τον τύπο (με σχετικές / απόλυτες αναφορές, όπως απαιτείται) στο κελί και πατήστε enter
  • Σταματήστε την εγγραφή
  • Ανοίξτε το VBA και ελέγξτε τον τύπο, προσαρμόζοντας όπως απαιτείται και αντιγράφοντας+επικολλώντας τον κώδικα όπου χρειάζεται.

Το βρίσκω πολύ ευκολότερο για να εισαγάγετε έναν τύπο σε ένα κελί παρά να πληκτρολογήσετε τον αντίστοιχο τύπο σε VBA.

Προσέξτε μερικά πράγματα:

  • Το Macro Recorder θα χρησιμοποιεί πάντα την ιδιότητα .FormulaR1C1
  • Το Macro Recorder αναγνωρίζει τις Απόλυτες αναφορές έναντι των σχετικών κελιών

Ιδιότητα VBA FormulaR1C1

Η ιδιότητα FormulaR1C1 χρησιμοποιεί αναφορές κελιού τύπου R1C1 (σε αντίθεση με το τυπικό στυλ A1 που έχετε συνηθίσει να βλέπετε στο Excel).

Ορίστε μερικά παραδείγματα:

12345678910111213141516171819 ΥποτύποςR1C1_Παράδειγμα ()«Αναφορά D5 (Απόλυτη)'= $ D $ 5Εύρος ("a1"). ΤύποςR1C1 = "= R5C4"'Αναφορά D5 (Σχετική) από το κελί Α1'= D5Εύρος ("a1"). FormulaR1C1 = "= R [4] C [3]"'Αναφορά D5 (Απόλυτη σειρά, σχετική στήλη) από το κελί Α1'= 5 $Εύρος ("a1"). FormulaR1C1 = "= R5C [3]"'Αναφορά D5 (Σχετική Σειρά, Απόλυτη Στήλη) από το κελί Α1'= $ 5 DΕύρος ("a1"). FormulaR1C1 = "= R [4] C4"Τέλος υπο

Παρατηρήστε ότι η αναφορά κελιού τύπου R1C1 σάς επιτρέπει να ορίσετε απόλυτες ή σχετικές αναφορές.

Απόλυτες Αναφορές

Στην τυπική σημειογραφία A1 μια απόλυτη αναφορά μοιάζει με αυτήν: "= $ C $ 2". Στη σημειογραφία R1C1 μοιάζει με αυτό: "= R2C3".

Για να δημιουργήσετε μια αναφορά Απόλυτης κυψέλης χρησιμοποιώντας τύπο τύπου R1C1:

  • R + αριθμός σειράς
  • C + αριθμός στήλης

Παράδειγμα: Το R2C3 θα αντιπροσωπεύει το κελί $ C $ 2 (το C είναι η 3η στήλη).

123 «Αναφορά D5 (Απόλυτη)'= $ D $ 5Εύρος ("a1"). ΤύποςR1C1 = "= R5C4"

Σχετικές αναφορές

Οι σχετικές αναφορές κελιών είναι αναφορές κελιών που "κινούνται" όταν μετακινείται ο τύπος.

Στην τυπική σημειογραφία Α1 μοιάζουν με αυτό: "= C2". Στη σημειογραφία R1C1, χρησιμοποιείτε αγκύλες [] για να αντισταθμίσετε την αναφορά κελιού από το τρέχον κελί.

Παράδειγμα: Η εισαγωγή του τύπου "= R [1] C [1]" στο κελί B3 θα αναφέρει το κελί D4 (η κυψέλη 1 σειρά παρακάτω και 1 στήλη στα δεξιά του κελιού τύπου).

Χρησιμοποιήστε αρνητικούς αριθμούς για να αναφέρετε κελιά πάνω ή αριστερά από το τρέχον κελί.

123 'Αναφορά D5 (Σχετική) από το κελί Α1'= D5Εύρος ("a1"). FormulaR1C1 = "= R [4] C [3]"

Μικτές Αναφορές

Οι αναφορές κυττάρων μπορεί να είναι εν μέρει σχετικές και εν μέρει απόλυτες. Παράδειγμα:

123 'Αναφορά D5 (Σχετική Σειρά, Απόλυτη Στήλη) από το κελί Α1'= $ 5 DΕύρος ("a1"). FormulaR1C1 = "= R [4] C4"

Ιδιότητα τύπου VBA

Κατά τη ρύθμιση τύπων με το.Ιδιότητα τύπου θα χρησιμοποιείτε πάντα σημειογραφία τύπου Α1. Εισάγετε τον τύπο όπως ακριβώς θα κάνατε σε ένα κελί Excel, εκτός από το να περιβάλλεται από εισαγωγικά:

12 «Αντιστοιχίστε έναν σκληρό κωδικοποιημένο τύπο σε ένα κελίΕύρος ("b3"). Τύπος = "= b1+b2"

Συμβουλές για τον τύπο VBA

Τύπος με μεταβλητή

Όταν εργάζεστε με τύπους στο VBA, είναι πολύ συνηθισμένο να θέλετε να χρησιμοποιείτε μεταβλητές μέσα στους τύπους κελιών. Για να χρησιμοποιήσετε μεταβλητές, χρησιμοποιείτε & για να συνδυάσετε τις μεταβλητές με την υπόλοιπη συμβολοσειρά τύπου. Παράδειγμα:

1234567 Sub Formula_Variable ()Dim colNum As LongcolNum = 4Εύρος ("a1"). FormulaR1C1 = "= R1C" & colNum & "+R2C" & colNumΤέλος υπο

Αποσπάσματα τύπου

Εάν πρέπει να προσθέσετε μια προσφορά (“) μέσα σε έναν τύπο, εισαγάγετε την προσφορά δύο φορές (“ ”):

123 Υπο Macro2 ()Εύρος ("B3"). FormulaR1C1 = "= TEXT (RC [-1]," "mm/dd/yyyy" ")"Τέλος υπο

Μια μεμονωμένη παράθεση (") σημαίνει στο VBA το τέλος μιας σειράς κειμένου. Ενώ μια διπλή παράθεση ("") αντιμετωπίζεται σαν μια παράθεση μέσα στη συμβολοσειρά του κειμένου.

Ομοίως, χρησιμοποιήστε 3 εισαγωγικά ("" ") για να περιβάλλετε μια συμβολοσειρά με εισαγωγικό (")

12 MsgBox "" "Χρησιμοποιήστε το 3 για να περιβάλλετε μια συμβολοσειρά με εισαγωγικά" """Αυτό θα εκτυπώσει το άμεσο παράθυρο

Εκχωρήστε τον τύπο κελιού στη μεταβλητή συμβολοσειράς

Μπορούμε να διαβάσουμε τον τύπο σε ένα δεδομένο κελί ή εύρος και να τον εκχωρήσουμε σε μια μεταβλητή συμβολοσειράς:

123 «Αντιστοίχιση τύπου κυττάρου σε μεταβλητήDim strFormula ως StringstrFormula = Εύρος ("B1"). Τύπος

Διαφορετικοί τρόποι για να προσθέσετε τύπους σε ένα κελί

Ακολουθούν μερικά ακόμη παραδείγματα για τον τρόπο εκχώρησης ενός τύπου σε ένα κελί:

  1. Απευθείας ανάθεση τύπου
  2. Ορίστε μια μεταβλητή συμβολοσειράς που περιέχει τον τύπο
  3. Χρησιμοποιήστε μεταβλητές για να δημιουργήσετε τύπο
12345678910111213141516171819202122232425 Sub MoreFormulaExamples ()«Εναλλακτικοί τρόποι για να προσθέσετε τύπο SUMστο κελί Β1'Dim strFormula ως StringDim κύτταρο ως εύροςdim fromRow as Range, toRow as RangeΟρισμός κελιού = Εύρος ("B1")«Απευθείας αντιστοίχιση συμβολοσειράςcell.Formula = "= SUM (A1: A10)"'Αποθήκευση συμβολοσειράς σε μια μεταβλητή"και εκχώρηση στην ιδιότητα" Formula "strFormula = "= SUM (A1: A10)"cell.Formula = strFormula«Χρήση μεταβλητών για τη δημιουργία μιας συμβολοσειράςκαι την εκχώρησή του στην ιδιότητα "Formula"από Σειρά = 1toRow = 10strFormula = "= SUM (A" & fromValue & ": A" & toValue & ")cell.Formula = strFormulaΤέλος υπο

Ανανέωση τύπων

Για υπενθύμιση, για ανανέωση τύπων, μπορείτε να χρησιμοποιήσετε την εντολή Υπολογισμός:

1 Υπολογίζω

Για ανανέωση μεμονωμένου τύπου, εύρους ή ολόκληρου του φύλλου εργασίας. Υπολογίστε αντ 'αυτού:

1 Φύλλα ("Φύλλο1"). Εύρος ("a1: a10"). Υπολογίστε

Θα βοηθήσει στην ανάπτυξη του τόπου, μοιράζονται τη σελίδα με τους φίλους σας

wave wave wave wave wave