Λειτουργίες VBA - Οδηγός για τη δημιουργία προσαρμοσμένης λειτουργίας χρησιμοποιώντας το VBA

Πίνακας περιεχομένων

Λειτουργίες Excel VBA

Έχουμε δει ότι μπορούμε να χρησιμοποιήσουμε τις λειτουργίες του φύλλου εργασίας στο VBA, δηλαδή τις λειτουργίες του φύλλου εργασίας excel σε κωδικοποίηση VBA χρησιμοποιώντας τη μέθοδο application.worksheet, αλλά πώς χρησιμοποιούμε μια συνάρτηση του VBA στο excel, καθώς αυτές οι συναρτήσεις ονομάζονται λειτουργίες καθορισμένες από το χρήστη, όταν ένας χρήστης δημιουργεί μια συνάρτηση στο VBA, μπορεί επίσης να χρησιμοποιηθεί σε φύλλο εργασίας excel.

Παρόλο που έχουμε πολλές λειτουργίες για να χειριστούμε τα δεδομένα, μερικές φορές πρέπει να έχουμε κάποια προσαρμογή στα εργαλεία, ώστε να μπορούμε να εξοικονομήσουμε χρόνο καθώς κάνουμε κάποιες εργασίες επανειλημμένα. Έχουμε προκαθορισμένες λειτουργίες στο excel όπως SUM, COUNTIF, SUMIF, COUNTIFS, VLOOKUP, INDEX, MATCH στο excel κ.λπ., αλλά κάνουμε μερικές εργασίες σε καθημερινή βάση για τις οποίες δεν υπάρχει διαθέσιμη μία εντολή ή λειτουργία στο Excel, στη συνέχεια χρησιμοποιώντας VBA, μπορούμε να δημιουργήσουμε την προσαρμοσμένη συνάρτηση που ονομάζεται User Defined Functions (UDF).

Τι κάνουν οι λειτουργίες VBA;

  • Πραγματοποιούν ορισμένους υπολογισμούς. και
  • Επιστρέψτε μια τιμή

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

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

Μπορούμε να συνδέσουμε το αντικείμενο με την ιδιότητα ή τη μέθοδο του χρησιμοποιώντας το σύμβολο τελείας ή τελείας (.).

Πώς να δημιουργήσετε προσαρμοσμένες λειτουργίες χρησιμοποιώντας το VBA;

Παράδειγμα

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

Για να συνοψίσουμε τους βαθμούς που έχει σημειώσει ένας μεμονωμένος μαθητής σε όλα τα μαθήματα, έχουμε μια ενσωματωμένη συνάρτηση, δηλαδή, SUM, αλλά για να μάθουμε το βαθμό και το αποτέλεσμα με βάση τα κριτήρια που καθορίζονται από το σχολείο δεν είναι διαθέσιμο στο Excel από προεπιλογή .

Αυτός είναι ο λόγος για τον οποίο πρέπει να δημιουργήσουμε λειτουργίες που καθορίζονται από το χρήστη.

Βήμα 1: Βρείτε συνολικά σημάδια

Αρχικά, θα βρούμε τα συνολικά σημάδια χρησιμοποιώντας τη συνάρτηση SUM στο excel.

Πατήστε Enter για να λάβετε το αποτέλεσμα.

Σύρετε τον τύπο στα υπόλοιπα κελιά.

Τώρα για να μάθετε το Αποτέλεσμα (Επιτυχημένο, Αποτυχημένο ή Βασικό Επανάληψη), τα κριτήρια που καθορίζονται από το σχολείο είναι αυτό.

  • Εάν ο μαθητής έχει σημειώσει περισσότερα από ή ίση με 200 ως συνολικά βαθμούς στα 500 και ο μαθητής δεν έχει επίσης αποτύχει σε οποιοδήποτε μάθημα (έχει σημειώσει περισσότερα από 32 σε κάθε μάθημα), τότε ένας μαθητής περνάει,
  • Εάν ο μαθητής έχει σημειώσει περισσότερα από ή ίση με 200, αλλά ο μαθητής αποτύχει σε 1 ή 2 μαθήματα, τότε ένας μαθητής έχει «Essential Repeat» σε αυτά τα θέματα,
  • Εάν ο μαθητής έχει σημειώσει λιγότερα από 200 ή αποτύχει σε 3 ή περισσότερα μαθήματα, τότε ο μαθητής αποτυγχάνει.
Βήμα 2: Δημιουργία συνάρτησης ResultOfStudent

Για να δημιουργήσουμε μια συνάρτηση με το όνομα "ResultOfStudent", πρέπει να ανοίξουμε το "Visual Basic Editor" χρησιμοποιώντας οποιαδήποτε από τις παρακάτω μεθόδους:

  • Χρησιμοποιώντας την καρτέλα Προγραμματιστής excel.

Εάν η καρτέλα Προγραμματιστής δεν είναι διαθέσιμη στο MS Excel, τότε μπορούμε να το πάρουμε ακολουθώντας τα ακόλουθα βήματα:

  • Κάντε δεξί κλικ οπουδήποτε στην κορδέλα και, στη συνέχεια, επιλέξτε το Customize the Ribbon in excel .

Όταν επιλέγουμε αυτήν την εντολή, ανοίγει το παράθυρο διαλόγου "Επιλογές Excel" .

  • Πρέπει να επιλέξετε το πλαίσιο "Προγραμματιστής" για να λάβετε την καρτέλα.
  • Χρησιμοποιώντας το πλήκτρο συντόμευσης, δηλαδή Alt + F11.
  • Όταν ανοίγουμε το πρόγραμμα επεξεργασίας VBA, πρέπει να εισαγάγουμε τη μονάδα μεταβαίνοντας στο μενού Εισαγωγή και επιλέγοντας μια ενότητα.
  • Πρέπει να επικολλήσουμε τον ακόλουθο κώδικα στην ενότητα.
Function ResultOfStudents(Marks As Range) As String Dim mycell As Range Dim Total As Integer Dim CountOfFailedSubject As Integer For Each mycell In Marks Total = Total + mycell.Value If mycell.Value = 200 And CountOfFailedSubject 0 Then ResultOfStudents = "Essential Repeat" ElseIf Total>= 200 And CountOfFailedSubject = 0 Then ResultOfStudents = "Passed" Else ResultOfStudents = "Failed" End If End Function

The above function returns the result for a student.

We need to understand how this code is working.

The first statement, ‘Function ResultOfStudents(Marks As Range) As String,’ declares a function named ‘ResultOfStudents’ that will accept a range as input for marks and will return the result as a string.

Dim mycell As Range Dim Total As Integer Dim CountOfFailedSubject As Integer

These three statements declare variables, i.e.,

  • ‘myCell’ as a Range,
  • ‘Total’ as Integer (to store total marks scored by a student),
  • ‘CountOfFailedSubject’ as integer (to store the number of subjects in which a student has failed).
For Each mycell In Marks Total = Total + mycell.Value If mycell.Value < 33 Then CountOfFailedSubject = CountOfFailedSubject + 1 End If Next mycell

This code checks for every cell in the ‘Marks’ range and adds the value of every cell in the ‘Total’ variable, and if the value of the cell is less than 33, then adds 1 to the ‘CountOfFailedSubject’ variable.

If Total>= 200 And CountOfFailedSubject 0 Then ResultOfStudents = "Essential Repeat" ElseIf Total>= 200 And CountOfFailedSubject = 0 Then ResultOfStudents = "Passed" Else ResultOfStudents = "Failed" End If

This code checks the value of ‘Total’ and ‘CountOfFailedSubject’ and passes the Essential Report,’ ‘Passed,’ or ‘Failed’ accordingly to the ‘ResultOfStudents.’

Step 3: Apply ResultOfStudents Function to Get Result

ResultOfStudents function takes marks, i.e., selection of 5 marks scored by the student.

Now Select the Range of cells, i.e., B2: F2.

Drag the Formula to the rest of the Cells.

Step 4: Create ‘GradeForStudent’ Function to get Grades

Now to find out the grade for the student, we will create one more function named ‘GradeForStudent.’

The code would be:

Function GradeForStudent(TotalMarks As Integer, Result As String) As String If TotalMarks> 440 And TotalMarks 380 And TotalMarks 320 And TotalMarks 260 And TotalMarks = 200 And TotalMarks <= 260 And (Result = "Passed" Or Result = "Essential Repeat") Then GradeForStudent = "E" ElseIf TotalMarks < 200 Or Result = "Failed" Then GradeForStudent = "F" End If End Function

This function assigns a ‘Grade’ to the student based on the ‘Total Marks’ and ‘Result.’

We just need to write the formula and open the brackets in Cell H2 and pressing Ctrl+Shift+A to find out about the arguments.

Η συνάρτηση GradeForStudent λαμβάνει Σύνολο βαθμολογιών (άθροισμα βαθμολογιών) και το αποτέλεσμα του μαθητή ως επιχείρημα για τον υπολογισμό του βαθμού.

Τώρα επιλέξτε τα αντίστοιχα κελιά, δηλαδή, G2, H2.

Τώρα πρέπει απλώς να πατήσουμε Ctrl + D αφού επιλέξουμε τα κελιά για να αντιγράψουμε τους τύπους.

Μπορούμε να επισημάνουμε τις τιμές κάτω των 33 με το κόκκινο χρώμα φόντου, ώστε να ανακαλύψουμε τα θέματα στα οποία ο μαθητής έχει αποτύχει.

ενδιαφέροντα άρθρα...