Μετάβαση στο κύριο περιεχόμενο

Πώς να εκτελέσετε μακροεντολή όταν αλλάζει η τιμή κελιού στο 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;

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

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

Δημοφιλή χαρακτηριστικά: Εύρεση, επισήμανση ή αναγνώριση διπλότυπων   |  Διαγραφή κενών γραμμών   |  Συνδυάστε στήλες ή κελιά χωρίς απώλεια δεδομένων   |   Γύρος χωρίς φόρμουλα ...
Σούπερ Αναζήτηση: VLookup πολλαπλών κριτηρίων    VLookup πολλαπλών τιμών  |   VLookup σε πολλά φύλλα   |   Ασαφής αναζήτηση ....
Σύνθετη αναπτυσσόμενη λίστα: Γρήγορη δημιουργία αναπτυσσόμενης λίστας   |  Εξαρτημένη αναπτυσσόμενη λίστα   |  Πολλαπλή αναπτυσσόμενη λίστα ....
Διαχειριστής στήλης: Προσθέστε έναν συγκεκριμένο αριθμό στηλών  |  Μετακίνηση στηλών  |  Εναλλαγή κατάστασης ορατότητας κρυφών στηλών  |  Συγκρίνετε εύρη και στήλες ...
Επιλεγμένα Χαρακτηριστικά: Εστίαση πλέγματος   |  Προβολή σχεδίου   |   Μεγάλη Formula Bar    Διαχείριση βιβλίου εργασίας & φύλλου   |  Βιβλιοθήκη πόρων (Αυτόματο κείμενο)   |  Επιλογή ημερομηνίας   |  Συνδυάστε φύλλα εργασίας   |  Κρυπτογράφηση/Αποκρυπτογράφηση κελιών    Αποστολή email ανά λίστα   |  Σούπερ φίλτρο   |   Ειδικό φίλτρο (φίλτρο με έντονη γραφή/πλάγια γραφή/διαγραφή...) ...
Κορυφαία 15 σύνολα εργαλείων12 Κείμενο Εργαλεία (Προσθήκη κειμένου, Κατάργηση χαρακτήρων, ...)   |   50 + Διάγραμμα Τύποι (Gantt διάγραμμα, ...)   |   40+ Πρακτικό ΜΑΘΗΜΑΤΙΚΟΙ τυποι (Υπολογίστε την ηλικία με βάση τα γενέθλια, ...)   |   19 Εισαγωγή Εργαλεία (Εισαγωγή κωδικού QR, Εισαγωγή εικόνας από το μονοπάτι, ...)   |   12 Μετατροπή Εργαλεία (Αριθμοί σε λέξεις, Μετατροπή Συναλλάγματος, ...)   |   7 Συγχώνευση & διαχωρισμός Εργαλεία (Σύνθετες σειρές συνδυασμού, Διαίρεση κελιών, ...)   |   ... κι αλλα

Αυξήστε τις δεξιότητές σας στο Excel με τα Kutools για Excel και απολαύστε την αποτελεσματικότητα όπως ποτέ πριν. Το Kutools για Excel προσφέρει πάνω από 300 προηγμένες δυνατότητες για την ενίσχυση της παραγωγικότητας και την εξοικονόμηση χρόνου.  Κάντε κλικ εδώ για να αποκτήσετε τη δυνατότητα που χρειάζεστε περισσότερο...

kte καρτέλα 201905


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

  • Ενεργοποίηση επεξεργασίας και ανάγνωσης καρτελών σε Word, Excel, PowerPoint, Publisher, Access, Visio και Project.
  • Ανοίξτε και δημιουργήστε πολλά έγγραφα σε νέες καρτέλες του ίδιου παραθύρου και όχι σε νέα παράθυρα.
  • Αυξάνει την παραγωγικότητά σας κατά 50% και μειώνει εκατοντάδες κλικ του ποντικιού για εσάς κάθε μέρα!
Comments (18)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
It worked, thanks for the help
This comment was minimized by the moderator on the site
This is exactly what I was looking go for. When a user enters a value in a cell, a simple sort macro would run. The macro runs fine on its own but I get an invalid use of property error using the suggested code.

What could be the issue?
This comment was minimized by the moderator on the site
I am using the code below to hide various columns depending on the selection from a drop-down box located in cell C3, but after a calculation is performed anywhere in the worksheet, ALL columns become UNHIDDEN. How do I fix this?

Private Sub Worksheet_Change(ByVal Target As Range)

Columns("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").Value
Proj2 = ActiveWorkbook.Sheets("Projects").Range("A2").Value
Proj3 = ActiveWorkbook.Sheets("Projects").Range("A3").Value
Proj4 = ActiveWorkbook.Sheets("Projects").Range("A4").Value
Proj5 = ActiveWorkbook.Sheets("Projects").Range("A5").Value
Proj6 = ActiveWorkbook.Sheets("Projects").Range("A6").Value
Proj7 = ActiveWorkbook.Sheets("Projects").Range("A7").Value
Proj8 = ActiveWorkbook.Sheets("Projects").Range("A8").Value
Proj9 = ActiveWorkbook.Sheets("Projects").Range("A9").Value
Proj10 = ActiveWorkbook.Sheets("Projects").Range("A10").Value

Dim xRG As Range
Dim xHRow As Integer
Set xRG = Range("C3")
If Not Intersect(Target, xRG) Is Nothing Then

If Target.Value = Proj1 Then
Application.Columns("E:F").Hidden = True
Application.Columns("D").Hidden = False

ElseIf Target.Value = Proj2 Then
Range("D:D, F:F").EntireColumn.Hidden = True
Application.Columns("E").Hidden = False

End If
End If
End Sub
This comment was minimized by the moderator on the site
I am trying to automate 1 workbook (BOM) when another workbook(Parts Status) makes changes. The Parts status file updates every 15 minutes. I need to know how to automate a specific column when these changes occur? Any ideas
This comment was minimized by the moderator on the site
Hi guys, I am solving the following issue: I want to scrape a title of website when link inserted in column A and put this value to relevant cell (next to it) in column B. The issue seems to be that once I paste the website in column A, the code reruns the entire list from column A2 to "last row" as defined in the code. Is there any way to only modify column B once a single column A is modified? I.e. if Ipaste a link in column A36 I get a title in B36, regardless of whether the cell is in the middle of the used range or at the very bottom. I would like to use this without having to re-run multiple inputs as it currently stands; (i.e. the loop "for i =2 to last row")? Also, I would like to change the below from Modular macro i.e. sub to private sub reacting to change (i.e. intersect function) where the 'target' is any cell from A:A range. Many thanks!


Sub get_title_header()



Dim wb As Object

Dim doc As Object

Dim sURL As String

Dim lastrow As Long

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



For i = 2 To lastrow

Set wb = CreateObject("internetExplorer.Application")

sURL = Cells(i, 1)



wb.navigate sURL

wb.Visible = False



While wb.Busy

DoEvents

Wend



''HTML document

Set doc = wb.document



Cells(i, 2) = doc.Title



On Error GoTo err_clear

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

err_clear:

If Err <> 0 Then

Err.Clear

Resume Next

End If

wb.Quit

Range(Cells(i, 1), Cells(i, 3)).Columns.AutoFit

Next i



End Sub




Thank YOU!
This comment was minimized by the moderator on the site
Hola buenas tardes
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.
This comment was minimized by the moderator on the site
The macro that you are calling where do you have this located? I have mine in the Modules folder but when I put any value in any cell of the worksheet I get a Compile error saying:
Expected variable or procedure, not module.

Please help.
This comment was minimized by the moderator on the site
Hi, DrCartwright,
Sorry for replying to you so late.
Yes, as you said, the macro code should be located into the Module, and you need to change the code name to your own name as following screenshot shown:
This comment was minimized by the moderator on the site
Hey, useful code. I was thinking if it was possible to insert a ring around the cells that are changed as they are changed? And reset the circles every Monday ?
This comment was minimized by the moderator on the site
Hello, Kevin,
Here is no idea for solving your problem, if you have any good solution, please comment here.
This comment was minimized by the moderator on the site
Worked great for me! My dilemma is that I want it to be a relative reference macro and there is a difference between hitting enter to save the entry and delete to clear the cell.
This comment was minimized by the moderator on the site
This worked first time for me using data validation list which displays text based on the list selection.
There are no comments posted here yet
Load More
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations