Note: The other languages of the website are Google-translated. Back to English

Πώς να εκτελέσετε μακροεντολή όταν αλλάζει η τιμή κελιού στο Excel;

Κανονικά, στο Excel, μπορούμε να πατήσουμε το πλήκτρο F5 ή το κουμπί Εκτέλεση για να εκτελέσουμε τον κώδικα VBA. Ωστόσο, έχετε προσπαθήσει ποτέ να εκτελέσετε τον συγκεκριμένο κώδικα μακροεντολών όταν αλλάζει μια τιμή κελιού; Σε αυτό το άρθρο, θα παρουσιάσω μερικά γρήγορα κόλπα για την αντιμετώπιση αυτής της εργασίας στο Excel.

Εκτελέστε ή καλέστε τη μακροεντολή όταν αλλάξει μια συγκεκριμένη τιμή κελιού με τον κώδικα VBA

Εκτελέστε ή καλέστε τη μακροεντολή όταν οποιαδήποτε τιμή κελιού αλλάζει σε εύρος με τον κώδικα VBA


βέλος μπλε δεξιά φούσκα Εκτελέστε ή καλέστε τη μακροεντολή όταν αλλάξει μια συγκεκριμένη τιμή κελιού με τον κώδικα VBA

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

1. Κάντε δεξί κλικ στην καρτέλα φύλλων που θέλετε να εκτελέσετε τη μακροεντολή εάν αλλάξει η τιμή του κελιού και, στη συνέχεια, επιλέξτε Προβολή κωδικού από το μενού περιβάλλοντος και στο ανοιχτό Microsoft Visual Basic για εφαρμογές παράθυρο, αντιγράψτε και επικολλήστε τον ακόλουθο κώδικα στην κενή ενότητα:

Κωδικός VBA: Εκτέλεση μακροεντολής όταν αλλάζει η τιμή κελιού:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$A$1" Then
        Call Mymacro
    End If
End Sub

doc run μακροεντολή αν το κελί αλλάξει 1

Note: Στον παραπάνω κώδικα, A1 είναι το συγκεκριμένο κελί στο οποίο θέλετε να εκτελέσετε τον κώδικα με βάση, Mymacro είναι το όνομα της μακροεντολής που θέλετε να εκτελέσετε. Αλλάξτε τα ανάλογα με τις ανάγκες σας.

2. Και, στη συνέχεια, αποθηκεύστε και κλείστε το παράθυρο κώδικα, τώρα, όταν εισαγάγετε ή αλλάξετε την τιμή στο κελί A1, ο συγκεκριμένος κώδικας θα ενεργοποιηθεί ταυτόχρονα.


βέλος μπλε δεξιά φούσκα Εκτελέστε ή καλέστε τη μακροεντολή όταν οποιαδήποτε τιμή κελιού αλλάζει σε εύρος με τον κώδικα VBA

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

1. Κάντε δεξί κλικ στην καρτέλα φύλλων που θέλετε να εκτελέσετε τη μακροεντολή εάν αλλάξει η τιμή του κελιού και, στη συνέχεια, επιλέξτε Προβολή κωδικού από το μενού περιβάλλοντος και στο ανοιχτό Microsoft Visual Basic για εφαρμογές παράθυρο, αντιγράψτε και επικολλήστε τον ακόλουθο κώδικα στην κενή ενότητα:

Κωδικός VBA: Εκτέλεση μακροεντολής όταν οποιαδήποτε τιμή κελιού αλλάζει σε εύρος:

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1:B100")) Is Nothing Then
Call Mymacro
End If
End Sub

doc run μακροεντολή αν το κελί αλλάξει 2

Note: Στον παραπάνω κώδικα, Α1: Β100 είναι τα συγκεκριμένα κελιά στα οποία θέλετε να εκτελέσετε τον κώδικα με βάση, Mymacro είναι το όνομα της μακροεντολής που θέλετε να εκτελέσετε. Αλλάξτε τα ανάλογα με τις ανάγκες σας.

2. Και, στη συνέχεια, αποθηκεύστε και κλείστε το παράθυρο κώδικα, τώρα, όταν εισάγετε ή αλλάζετε την τιμή σε οποιοδήποτε κελί του A1: B100, ο συγκεκριμένος κώδικας θα εκτελεστεί ταυτόχρονα.


Καταργήστε όλες τις μακροεντολές από πολλά βιβλία εργασίας

Kutools για Excel's Μαζική κατάργηση όλων των μακροεντολών βοηθητικό πρόγραμμα μπορεί να σας βοηθήσει να αφαιρέσετε όλες τις μακροεντολές από πολλά βιβλία εργασίας όπως χρειάζεστε. Κατεβάστε και δωρεάν δοκιμή Kutools για Excel τώρα!

Kutools για Excel: με περισσότερα από 300 εύχρηστα πρόσθετα του Excel, δωρεάν δοκιμή χωρίς περιορισμό σε 30 ημέρες. Λήψη και δωρεάν δοκιμή τώρα!


Σχετικά άρθρα:

Πώς να εκτελέσετε αυτόματα τη μακροεντολή πριν από την εκτύπωση στο Excel;

Πώς να εκτελέσετε μακροεντολή με βάση την τιμή κελιού στο Excel;

Πώς να εκτελέσετε μακροεντολή με βάση την τιμή που επιλέγεται από την αναπτυσσόμενη λίστα στο Excel;

Πώς να εκτελέσετε μακροεντολή κάνοντας κλικ στους υπερσυνδέσμους στο Excel;

Πώς να εκτελέσετε μακροεντολή όταν το φύλλο έχει επιλεγεί από ένα βιβλίο εργασίας;


Τα καλύτερα εργαλεία παραγωγικότητας του Office

Το Kutools για Excel λύνει τα περισσότερα από τα προβλήματά σας και αυξάνει την παραγωγικότητά σας κατά 80%

  • Επαναχρησιμοποίηση: Εισαγάγετε γρήγορα σύνθετοι τύποι, γραφήματα και οτιδήποτε έχετε χρησιμοποιήσει στο παρελθόν. Κρυπτογράφηση κυττάρων με κωδικό πρόσβασης Δημιουργία λίστας αλληλογραφίας και στείλτε email ...
  • Super Formula Bar (επεξεργαστείτε εύκολα πολλές γραμμές κειμένου και τύπου). Διάταξη ανάγνωσης (εύκολη ανάγνωση και επεξεργασία μεγάλου αριθμού κελιών). Επικόλληση σε φιλτραρισμένο εύρος...
  • Συγχώνευση κελιών / σειρών / στηλών χωρίς απώλεια δεδομένων · Περιεχόμενο διαχωρισμού κελιών Συνδυάστε διπλές σειρές / στήλες... Αποτροπή διπλών κυττάρων; Συγκρίνετε τα εύρη...
  • Επιλέξτε Διπλότυπο ή Μοναδικό Σειρές; Επιλέξτε Κενές σειρές (όλα τα κελιά είναι κενά). Σούπερ εύρεση και ασαφής εύρεση σε πολλά βιβλία εργασίας. Τυχαία επιλογή ...
  • Ακριβές αντίγραφο Πολλαπλά κελιά χωρίς αλλαγή της αναφοράς τύπου. Αυτόματη δημιουργία αναφορών σε πολλαπλά φύλλα? Εισαγωγή κουκκίδων, Πλαίσια ελέγχου και άλλα ...
  • Εξαγωγή κειμένου, Προσθήκη κειμένου, Κατάργηση κατά θέση, Αφαιρέστε το διάστημα; Δημιουργία και εκτύπωση υποσύνολων σελιδοποίησης. Μετατροπή περιεχομένου και σχολίων μεταξύ κελιών...
  • Σούπερ φίλτρο (αποθηκεύστε και εφαρμόστε σχήματα φίλτρων σε άλλα φύλλα). Προηγμένη ταξινόμηση ανά μήνα / εβδομάδα / ημέρα, συχνότητα και άλλα. Ειδικό φίλτρο με έντονη, πλάγια ...
  • Συνδυάστε βιβλία εργασίας και φύλλα εργασίας; Συγχώνευση πινάκων βάσει βασικών στηλών. Διαχωρίστε τα δεδομένα σε πολλά φύλλα; Μαζική μετατροπή xls, xlsx και PDF...
  • Περισσότερα από 300 ισχυρά χαρακτηριστικά. Υποστηρίζει Office / Excel 2007-2021 και 365. Υποστηρίζει όλες τις γλώσσες. Εύκολη ανάπτυξη στην επιχείρηση ή τον οργανισμό σας. Πλήρεις δυνατότητες δωρεάν δοκιμής 30 ημερών. Εγγύηση επιστροφής χρημάτων 60 ημερών.
kte καρτέλα 201905

Το Office Tab φέρνει τη διεπαφή με καρτέλες στο Office και κάνει την εργασία σας πολύ πιο εύκολη

  • Ενεργοποίηση επεξεργασίας και ανάγνωσης καρτελών σε Word, Excel, PowerPoint, Publisher, Access, Visio και Project.
  • Ανοίξτε και δημιουργήστε πολλά έγγραφα σε νέες καρτέλες του ίδιου παραθύρου και όχι σε νέα παράθυρα.
  • Αυξάνει την παραγωγικότητά σας κατά 50% και μειώνει εκατοντάδες κλικ του ποντικιού για εσάς κάθε μέρα!
κάτω μέρος γραφείου
Σχόλια (17)
Δεν υπάρχουν ακόμη βαθμολογίες. Γίνε ο πρώτος που θα αξιολογήσετε!
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Αυτή η ενότητα δεν λειτουργεί για μένα. Λέει ότι όταν αλλάξει η ΑΞΙΑ του κελιού θα εκτελεστεί ο κώδικας. Βρίσκω ότι αν πληκτρολογήσω στο κελί λειτουργεί, αλλά αν η τιμή του κελιού αλλάζει από έναν τύπο, για παράδειγμα έναν Counta, τότε δεν εκτελείται. Έχετε κάποια λύση για την εκτέλεση μιας μακροεντολής όταν το VALUE αλλάζει μέσω ενός τύπου; Ευχαριστώ, Wayne
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Το ίδιο πρόβλημα με τον Γουέιν. Οποιαδήποτε βοήθεια εκτιμάται πολύ! Ευχαριστώ Ronnie
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Γεια σας παιδιά,

Ναι, ο παραπάνω κώδικας είναι διαθέσιμος μόνο όταν η τιμή του κελιού αλλάζει με μη αυτόματο τρόπο. Εάν χρειάζεται να εκτελέσετε αυτόματα έναν συγκεκριμένο κωδικό μακροεντολής όταν αλλάζει το αποτέλεσμα του τύπου με την αλλαγή των σχετικών κελιών του, επισκεφτείτε αυτό το άρθρο:
https://www.extendoffice.com/documents/excel/4618-excel-vba-run-macro-when-cell-formula-result-changes.html.
Δοκιμάστε το και ελπίζουμε να απαντήσετε.
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Δεν λειτουργεί... & αλλάζω την τιμή του κελιού με μη αυτόματο τρόπο. Υπάρχει κάποια προρύθμιση που πρέπει να ρυθμιστεί;
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Δοκιμάστε το στη διαδικασία και χρησιμοποιήστε το ως παράμετρο


Ιδιωτικό δευτερεύον φύλλο εργασίας_Αλλαγή (ByVal Στόχος ως εύρος)

MsgBox Target.Address & "-" e Target.AddressLocal

Sub End
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Ναι, η περιγραφή λέει ότι πρέπει να ενεργοποιείται όταν αλλάζει η τιμή, αλλά ο δεύτερος κωδικός λέει ότι είναι όταν η τιμή δεν είναι τίποτα, και ο πρώτος δεν ενεργοποιείται όταν αλλάζει μια τιμή, αλλά αν πατήσω το F5 όταν κοιτάζω τον κωδικό, θέλει για να ενεργοποιήσει το MyMacro, αλλά δεν φαίνεται να αντιδρά στις αλλαγές αξίας όσο το να πηγαίνεις από το τίποτα σε κάτι ή το αντίθετο.
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Αυτό λειτούργησε για πρώτη φορά για μένα χρησιμοποιώντας τη λίστα επικύρωσης δεδομένων που εμφανίζει κείμενο με βάση την επιλογή λίστας.
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Δούλεψε υπέροχα για μένα! Το δίλημμά μου είναι ότι θέλω να είναι μια σχετική μακροεντολή αναφοράς και υπάρχει διαφορά ανάμεσα στο πάτημα enter για να αποθηκεύσετε την καταχώρηση και στο delete για να καθαρίσετε το κελί.
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Γεια, χρήσιμος κώδικας. Σκεφτόμουν αν ήταν δυνατόν να μπει ένας δακτύλιος γύρω από τα κελιά που αλλάζουν καθώς αλλάζουν; Και να επαναφέρω τους κύκλους κάθε Δευτέρα;
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Γεια σου, Kevin,
Εδώ δεν υπάρχει ιδέα για την επίλυση του προβλήματός σας, εάν έχετε κάποια καλή λύση, παρακαλώ σχολιάστε εδώ.
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Η μακροεντολή που καλείτε πού την έχετε; Έχω το δικό μου στο φάκελο Modules, αλλά όταν βάζω οποιαδήποτε τιμή σε οποιοδήποτε κελί του φύλλου εργασίας, λαμβάνω ένα σφάλμα Compile που λέει:
Αναμενόμενη μεταβλητή ή διαδικασία, όχι ενότητα.

Παρακαλώ βοηθήστε.
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Γεια, DrCartwright,
Συγγνώμη που σας απάντησα τόσο αργά.
Ναι, όπως είπατε, ο κωδικός μακροεντολής θα πρέπει να βρίσκεται στη Μονάδα και πρέπει να αλλάξετε το κωδικό όνομα στο δικό σας όνομα όπως φαίνεται στο παρακάτω στιγμιότυπο οθόνης:
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Γεια σου καλό απόγευμα
quisiera saber el codigo para que se active una macro cuando cambia el valor de una celda de una columna, pero este valor cambia por formula,sin que el usuario introduzca ningun valor.
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Γεια σας παιδιά, λύνω το εξής πρόβλημα: Θέλω να ξύσω έναν τίτλο ιστότοπου όταν εισάγεται ο σύνδεσμος στη στήλη Α και να βάλω αυτήν την τιμή στο σχετικό κελί (δίπλα) στη στήλη Β. Το πρόβλημα φαίνεται να είναι ότι μόλις επικολλήσω το ιστότοπος στη στήλη Α, ο κώδικας εκτελεί ξανά ολόκληρη τη λίστα από τη στήλη A2 στην "τελευταία σειρά", όπως ορίζεται στον κώδικα. Υπάρχει τρόπος να τροποποιήσετε τη στήλη Β μόνο όταν τροποποιηθεί μια μεμονωμένη στήλη Α; Π.χ., εάν κάνω Ipaste έναν σύνδεσμο στη στήλη A36, θα λάβω έναν τίτλο στο B36, ανεξάρτητα από το αν το κελί βρίσκεται στη μέση της χρησιμοποιούμενης περιοχής ή στο κάτω μέρος. Θα ήθελα να το χρησιμοποιήσω χωρίς να χρειάζεται να ξανατρέξω πολλές εισόδους όπως έχει αυτή τη στιγμή. (δηλαδή ο βρόχος "για i =2 στην τελευταία σειρά"); Επίσης, θα ήθελα να αλλάξω το παρακάτω από Modular macro, δηλαδή sub, σε private sub που αντιδρά στην αλλαγή (δηλαδή συνάρτηση τομής) όπου ο 'στόχος' είναι οποιοδήποτε κελί από το εύρος A:A. Πολλά ευχαριστώ!


Sub get_title_header()



Dim wb ως αντικείμενο

Dim doc ως αντικείμενο

Dim sURL ως συμβολοσειρά

Dim lastrow As Long

lastrow = Sheet1.Cells(Rows.Count, "A").End(xlUp).row



Για το i = 2 Προς το τέλος

Ορισμός wb = CreateObject("internetExplorer.Application")

sURL = Κελιά(i, 1)



wb.navigate sURL

wb.Ορατό = Λάθος



Ενώ wb.Απασχολημένος

DoEvents

Διευθύνω



''Έγγραφο HTML

Ορισμός doc = wb.document



Cells(i, 2) = doc.Title



Σφάλμα Μετάβαση στο err_clear

Cells(i, 3) = doc.GetElementsByTagName("h1")(0).innerText

err_clear:

Αν Σφάλμα <> 0 Τότε

Err.Clear

Συνέχιση Επόμενο

End If

wb. Κλείστε

Εύρος(Κελιά(i, 1), Κελιά(i, 3)).Στήλες.AutoFit

Επόμενο i



Sub End




Ευχαριστώ!
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Προσπαθώ να αυτοματοποιήσω 1 βιβλίο εργασίας (BOM) όταν ένα άλλο βιβλίο εργασίας (Κατάσταση ανταλλακτικών) κάνει αλλαγές. Το αρχείο κατάστασης ανταλλακτικών ενημερώνεται κάθε 15 λεπτά. Πρέπει να μάθω πώς να αυτοματοποιήσω μια συγκεκριμένη στήλη όταν συμβαίνουν αυτές οι αλλαγές; Καμιά ιδέα
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Χρησιμοποιώ τον παρακάτω κώδικα για να αποκρύψω διάφορες στήλες ανάλογα με την επιλογή από ένα αναπτυσσόμενο πλαίσιο που βρίσκεται στο κελί C3, αλλά μετά την εκτέλεση ενός υπολογισμού σε οποιοδήποτε σημείο του φύλλου εργασίας, ΟΛΕΣ οι στήλες γίνονται UNHIDDEN. Πώς μπορώ να το διορθώσω αυτό;

Προσωπικό φύλλο εργασίας Sub_change (ByVal Target As Range)

Στήλες("D:F").AutoFit

Dim Proj1 As String
Dim Proj2 As String
Dim Proj3 As String
Dim Proj4 As String
Dim Proj5 As String
Dim Proj6 As String
Dim Proj7 As String
Dim Proj8 As String
Dim Proj9 As String
Dim Proj10 As String

Proj1 = ActiveWorkbook.Sheets("Projects").Range("A1").Τιμή
Proj2 = ActiveWorkbook.Sheets("Projects").Range("A2").Τιμή
Proj3 = ActiveWorkbook.Sheets("Projects").Range("A3").Τιμή
Proj4 = ActiveWorkbook.Sheets("Projects").Range("A4").Τιμή
Proj5 = ActiveWorkbook.Sheets("Projects").Range("A5").Τιμή
Proj6 = ActiveWorkbook.Sheets("Projects").Range("A6").Τιμή
Proj7 = ActiveWorkbook.Sheets("Projects").Range("A7").Τιμή
Proj8 = ActiveWorkbook.Sheets("Projects").Range("A8").Τιμή
Proj9 = ActiveWorkbook.Sheets("Projects").Range("A9").Τιμή
Proj10 = ActiveWorkbook.Sheets("Projects").Range("A10").Τιμή

Dim xRG ως εύρος
Dim xHRow ως ακέραιος
Ορισμός xRG = Εύρος ("C3")
If Not Intersect(Target, xRG) Is Nothing then

Αν Target.Value = Proj1 Τότε
Application.Columns("E:F").Hidden = True
Application.Columns("D").Hidden = False

ElseIf Target.Value = Proj2 Τότε
Εύρος ("D:D, F:F").EntireColumn.Hidden = True
Application.Columns("E").Hidden = False

End If
End If
Sub End
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Αυτό ακριβώς έψαχνα. Όταν ένας χρήστης εισάγει μια τιμή σε ένα κελί, θα εκτελείται μια απλή μακροεντολή ταξινόμησης. Η μακροεντολή λειτουργεί καλά από μόνη της, αλλά λαμβάνω ένα σφάλμα μη έγκυρης χρήσης της ιδιότητας χρησιμοποιώντας τον προτεινόμενο κωδικό.

Τι θα μπορούσε να είναι το θέμα;
Δεν υπάρχουν σχόλια δημοσιεύτηκε ακόμα
Αφήστε τα σχόλιά σας
Δημοσίευση ως επισκέπτης
×
Αξιολογήστε αυτήν την ανάρτηση:
0   Χαρακτήρες
Προτεινόμενες τοποθεσίες

Ακολουθησε μας

Πνευματικά δικαιώματα © 2009 - www.extendoffice.com. | Ολα τα δικαιώματα διατηρούνται. Τροφοδοτείται από ExtendOffice. | Sitemap
Το Microsoft και το λογότυπο του Office είναι εμπορικά σήματα ή σήματα κατατεθέντα της Microsoft Corporation στις Ηνωμένες Πολιτείες ή / και σε άλλες χώρες.
Προστατεύεται από το Sectigo SSL