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

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

Σε ορισμένες περιπτώσεις, ίσως χρειαστεί να κλειδώσετε ή να ξεκλειδώσετε κελιά με βάση τιμές σε άλλο κελί. Για παράδειγμα, πρέπει να ξεκλειδώσετε το εύρος B1: B4 εάν το κελί A1 περιέχει την τιμή "Αποδοχή". και να κλειδωθεί εάν το κελί A1 περιέχει την τιμή "Άρνηση". Πώς μπορείτε να το πετύχετε; Αυτό το άρθρο μπορεί να σας βοηθήσει.

Κλειδώστε ή ξεκλειδώστε κελιά με βάση τιμές σε άλλο κελί με κώδικα VBA


Κλειδώστε ή ξεκλειδώστε κελιά με βάση τιμές σε άλλο κελί με κώδικα VBA

Ο ακόλουθος κώδικας VBA μπορεί να σας βοηθήσει να κλειδώσετε ή να ξεκλειδώσετε κελιά με βάση την τιμή σε άλλο κελί στο Excel.

1. Κάντε δεξί κλικ στην καρτέλα φύλλων (το φύλλο με κελιά που πρέπει να κλειδώσετε ή να ξεκλειδώσετε με βάση τις τιμές σε άλλο κελί) και κάντε κλικ στο Προβολή κωδικού από το μενού με δεξί κλικ.

2. Στη συνέχεια, αντιγράψτε και επικολλήστε τον ακόλουθο κώδικα VBA στο παράθυρο Code.

Κωδικός VBA: Κλείδωμα ή ξεκλείδωμα κελιών με βάση τιμές σε άλλο κελί

Private Sub Worksheet_Change(ByVal Target As Range)
    If Range("A1") = "Accepting" Then
        Range("B1:B4").Locked = False
    ElseIf Range("A1") = "Refusing" Then
        Range("B1:B4").Locked = True
    End If
End Sub

3. Πάτα το άλλος + Q ταυτόχρονα για να κλείσετε το Microsoft Visual Basic για εφαρμογές παράθυρο.

Από τώρα και στο εξής, όταν εισάγετε την τιμή "Αποδοχή" στο κελί A1, η περιοχή B1: B4 ξεκλειδώνεται.

Όταν εισάγετε την τιμή "Άρνηση" στο κελί A1, το καθορισμένο εύρος B1: B4 κλειδώνεται αυτόματα.


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


Τα καλύτερα εργαλεία παραγωγικότητας του 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% και μειώνει εκατοντάδες κλικ του ποντικιού για εσάς κάθε μέρα!
κάτω μέρος γραφείου
Σχόλια (52)
Δεν υπάρχουν ακόμη βαθμολογίες. Γίνε ο πρώτος που θα αξιολογήσετε!
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Πώς μπορεί να κλειδώσει/ξεκλειδώσει μια μεταβλητή π.χ. όταν το κελί είναι [=INDEX(A16:L35,MATCH(W5,A16:A35,0),MATCH("PAY",A16:L16,0))]
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Θέλω μια απλή εντολή VBA που δεν μπορώ να καταλάβω, παρακαλώ βοηθήστε
Εάν το κελί A1 είναι Balnk, τότε το κελί A2 είναι κλειδωμένο και εάν το κελί A1 περιέχει οποιαδήποτε τιμή, τότε το κελί A2 είναι ξεκλείδωτο
Ομοίως, εάν το κελί A2 είναι κενό, τότε το κελί A3 είναι κλειδωμένο και εάν το κελί A2 περιέχει οποιαδήποτε τιμή, το κελί A3 είναι ξεκλείδωτο
και ούτω καθεξής τόσα κελιά ανάλογα με τις απαιτήσεις σε οποιοδήποτε μέρος του φύλλου.
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Γεια, προσπαθώ να το επιτύχω αυτό, αλλά λαμβάνω ένα σφάλμα ότι η VBA δεν μπορεί να ορίσει την ιδιότητα Locked της κατηγορίας Range εάν το φύλλο έχει προστατευτεί. Η κατάργηση της προστασίας του φύλλου θα ακυρώσει το κελί που είναι κλειδωμένο. Πώς να το ξεπεράσετε αυτό; Ευχαριστώ για οποιαδήποτε βοήθεια.
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Λύσατε; έχω το ίδιο πρόβλημα
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Αγαπητέ Υπόμνημα,
Δοκιμάστε τον παρακάτω κώδικα VBA.

Ιδιωτικό δευτερεύον φύλλο εργασίας_Activate()
Εάν δεν είναι ActiveSheet.ProtectContents Τότε
Εύρος ("A1"). Κλειδωμένο = Λάθος
Εύρος ("B1:B4"). Κλειδωμένο = Λάθος
End If
Sub End
Ιδιωτικό δευτερεύον φύλλο εργασίας_SelectionChange(Στόχος ByVal ως εύρος)
Dim xRg ως εύρος, xRgA ως εύρος
On Error Συνέχιση Επόμενη
Application.EnableEvents = False
Ορισμός xRg = Εύρος ("B1:B4")
Ορισμός xRgA = Εύρος ("A1")
Αν διασταυρωθεί(Στόχος, xRg).Διεύθυνση <> Στόχος.Διεύθυνση _
Ή xRgA = "Αποδοχή" Τότε
Application.EnableEvents = True
Έξοδος Sub
ElseIf ActiveSheet.ProtectContents _
And Intersect(Target, xRg) = Target _
Και xRgA.Value = "Αρνείται" Τότε
xRgA.Επιλέξτε
End If
Application.EnableEvents = True
Sub End
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Θα θέλετε να χρησιμοποιήσετε τη γραμμή διεπαφής στο βιβλίο εργασίας, ώστε όταν ανοίγετε το αρχείο, να προστατεύει τα φύλλα, αλλά να επιτρέπει στις μακροεντολές να κάνουν αλλαγές ούτως ή άλλως.

Private Sub Workbook_Open() 'Αυτό πηγαίνει στο "This Workbook"

Φύλλα εργασίας ("Εργαλείο παραγγελίας").Προστασία κωδικού πρόσβασης:="Pwd", UserInterFaceOnly:=True

Sub End
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Αγαπητέ Μυρμήγκι,
Ο παρακάτω κώδικας VBA μπορεί να σας βοηθήσει να λύσετε αυτό το πρόβλημα. Σας ευχαριστούμε για το σχόλιό σας.

Ιδιωτικό δευτερεύον φύλλο εργασίας_Activate()
Εάν δεν είναι ActiveSheet.ProtectContents Τότε
Εύρος ("A1"). Κλειδωμένο = Λάθος
Εύρος ("B1:B4"). Κλειδωμένο = Λάθος
End If
Sub End
Ιδιωτικό δευτερεύον φύλλο εργασίας_SelectionChange(Στόχος ByVal ως εύρος)
Dim xRg ως εύρος, xRgA ως εύρος
On Error Συνέχιση Επόμενη
Application.EnableEvents = False
Ορισμός xRg = Εύρος ("B1:B4")
Ορισμός xRgA = Εύρος ("A1")
Αν διασταυρωθεί(Στόχος, xRg).Διεύθυνση <> Στόχος.Διεύθυνση _
Ή xRgA = "Αποδοχή" Τότε
Application.EnableEvents = True
Έξοδος Sub
ElseIf ActiveSheet.ProtectContents _
And Intersect(Target, xRg) = Target _
Και xRgA.Value = "Αρνείται" Τότε
xRgA.Επιλέξτε
End If
Application.EnableEvents = True
Sub End
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Γεια σας,

Είναι δυνατόν αυτό το VBA να κλειδώνει ένα σύνολο κελιών/να ξεκλειδώνει ένα άλλο με βάση αυτό; Για παράδειγμα, το εύρος B1:B4 είναι ξεκλείδωτο και το C1:C4 είναι κλειδωμένο για "αποδοχή" και μετά το B1:B4 είναι κλειδωμένο και το C1:C4 ξεκλειδώνεται για "άρνηση";


Ευχαριστώ,
Χριστιανός
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Αγαπητέ Χριστιανό,
Προστατεύεται το φύλλο εργασίας σας;
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
παρακαλώ μπορεί κάποιος να με βοηθήσει με το εξής.
Θέλω να εισάγω φωτογραφίες μαθητή σε ένα φύλλο, εμφανίζεται σε άλλο φύλλο με βάση τα ονόματά τους
Για να δημιουργήσετε ένα αεροπλάνο πλοήγησης για να βοηθήσετε τους χρήστες
Για να αντιστοιχίσετε ένα συγκεκριμένο φύλλο(α) σε έναν χρήστη
Για να δημιουργήσετε μια διεπαφή για το βιβλίο εργασίας
Για να δημιουργήσετε μια σελίδα σύνδεσης
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Αγαπητέ Λέο,
Οποιαδήποτε ερώτηση σχετικά με το Excel, μη διστάσετε να δημοσιεύσετε στο φόρουμ μας: https://www.extendoffice.com/forum.html.
Θα λάβετε περισσότερες υποστηρίξεις για το Excel από τον επαγγελματία μας στο Excel.
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Χαίρετε Κ.

Δοκίμασα τον κώδικά σας και έχω επεξεργαστεί λίγο, αλλά δεν μπορώ να καταλάβω τι κάνω λάθος εδώ;

Προσωπικό φύλλο εργασίας Sub_change (ByVal Target As Range)
If Range("A40") <> "" Τότε
Εύρος ("D40:E40"). Κλειδωμένο = False
ElseIf Range("A40") = "" Τότε
Εύρος ("D40:E40"). Κλειδωμένο = Αληθές
End If
Sub End


Η σκέψη μου για αυτό ήταν αν δεν υπάρχει τίποτα σε αυτό (A40). Τότε θέλω να κλειδώσω με VBA. Εάν το A40 περιέχει κάτι, τότε θέλω να ξεκλειδωθεί. Ελπίζω να μπορείτε να δείτε την έννοια του.


Με εκτίμηση Kristoffer
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Καλή μέρα,
Δεν υπάρχει τίποτα κακό με τον κωδικό σας. Λειτουργεί καλά για μένα.
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Γεια. Και εγώ δεν μπορώ να κάνω αυτόν τον κωδικό να λειτουργήσει. Δεν κάνει απολύτως τίποτα. Λες και δεν υπάρχει ο κωδικός;; Είμαι πολύ νέος στο VBA και έχω μια βασική κατανόησή του. Αυτός ο κώδικας εκτελείται ως έχει ή πρέπει να έχει προστεθεί και κάτι σε αυτόν για να εκτελεστεί; Ή μετατράπηκε σε μακροεντολή (το οποίο δεν καταλαβαίνω πραγματικά γιατί είναι μια εγγραφή οδηγιών, σύμφωνα με τις αντιλήψεις μου)
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
ΠΟΙΟΣ ΘΑ ΕΙΝΑΙ Ο ΚΩΔΙΚΟΣ ΑΝ ΘΕΛΩ ΝΑ ΚΛΕΙΔΩΡΩ ΤΟ ΚΕΛΙΟ Ε1, Ε2, Ε3 .............. ΓΙΑ ΣΥΓΚΕΚΡΙΜΕΝΟ ΚΕΙΜΕΝΟ (ΑΣ ΠΟΥΜΕ "P") ΣΤΟ ΚΕΛΙ Β1, Β2, Β3... ..............ΑΝΤΙΣΤΟΙΧΑ.

Ευχαριστώ εκ των προτέρων
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Good Day
Δοκιμάστε παρακάτω το σενάριο VBA.

Προσωπικό φύλλο εργασίας Sub_change (ByVal Target As Range)
Αν Target.Count = 1 Τότε
Αν Target.Address = Range("A1").Address And Target.Value = "A" Τότε
Εύρος ("B1"). Κλειδωμένο = Αληθές
ElseIf Target.Address = Range("A2").Address And Target.Value = "A" Τότε
Εύρος ("B2"). Κλειδωμένο = Αληθές
ElseIf Target.Address = Range("A3").Address And Target.Value = "A" Τότε
Εύρος ("B3"). Κλειδωμένο = Αληθές
End If
End If
Sub End
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Καλή σας μέρα!
Δεν είναι τόσο σημαντικό, αλλά δεν είναι τόσο σημαντικό, αλλά δεν έχω καμία δουλειά об ошибке, ячейка, которая должна быть заблокирована - просто не блокируется, остается активенй. В чем может быть αιτία;

Вот код, который я использовала:

Προσωπικό φύλλο εργασίας Sub_change (ByVal Target As Range)
Αν Στόχος.Μετρήστε t=1 Τότε
Αν Target.Address = Range("C9").Address And Target.Value = "согласно плану" Τότε
Εύρος ("C10"). Κλειδωμένο = Αληθές
End If
Sub End
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Γεια σου Ghost,
Λυπάμαι που δεν καταλαβαίνω καλά τι εννοείς. Για λόγους σαφήνειας, επισυνάψτε ένα δείγμα αρχείου ή ένα στιγμιότυπο οθόνης με τα δεδομένα σας και τα επιθυμητά αποτελέσματα.
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Γεια! χρειάζεται κάποια συμβουλή.
Υπάρχει τρόπος να μην επιτραπεί η ενημέρωση ενός κελιού εκτός εάν έχει ικανοποιήσει μια συνθήκη σε άλλο κελί;
Δείγμα: εάν το κελί Α δεν ενημερωθεί, δεν θα μου επιτρέψει να αλλάξω την τιμή του κελιού Β σε συμπλήρωση.

Εκτιμήστε τα σχόλια.
Ευχαριστώ!
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Αγαπητή Margie,
Δοκιμάστε τον παρακάτω κώδικα VBA.

Dim PreVal As String
Dim NextVal ως συμβολοσειρά
Ιδιωτικό δευτερεύον φύλλο εργασίας_Activate()
PreVal = Εύρος ("A1")
NextVal = Εύρος ("A1")
Sub End
Προσωπικό φύλλο εργασίας Sub_change (ByVal Target As Range)
Αν (Target.Count = 1) And (Target.Address = "$A$1") Τότε
NextVal = Εύρος ("A1")
End If
Sub End
Ιδιωτικό δευτερεύον φύλλο εργασίας_SelectionChange(Στόχος ByVal ως εύρος)
Αν Target.Count = 1 Τότε
If Target.Address = "$A$1" Τότε
PreVal = Εύρος ("A1")
ElseIf (Target.Address = "$B$1") Στη συνέχεια
Αν PreVal = NextVal Τότε
Application.EnableEvents = False
Εύρος ("A1"). Επιλέξτε
Application.EnableEvents = True
End If
End If
End If
Sub End
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
μπορεί κάποιος να το διορθώσει αυτό pls >>>

Προσωπικό φύλλο εργασίας Sub_change (ByVal Target As Range)
Για i = 7 έως 100
If Range("Cells(D, i)") = "Δάνειο" Τότε
Εύρος ("Cells(V, i):Cells(X, i)").Κλειδωμένο = True
ElseIf Range("Cells(D, i)") = "Savings" Τότε
Εύρος ("Cells(Q, i):Cells(U, i)").Κλειδωμένο = True
Εύρος ("Cells(W, i):Cells(X, i)").Κλειδωμένο = True
ElseIf Range("Cells(D, i)") = "ShareCap" Τότε
Εύρος ("Cells(Q, i):Cells(U, i)").Κλειδωμένο = True
Εύρος ("Κελιά(V, i)").Κλειδωμένο = Αληθές
End If
Επόμενο i
Sub End
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Γεια! Μπορεί κάποιος να με βοηθήσει; Πρέπει να κλειδώσω/παγώσω ένα κελί. Αυτό το κελί είναι συνδεδεμένο με ένα άλλο και έχει μια τιμή που αλλάζει κάθε λεπτό. Αυτό που πρέπει να κάνω είναι να διατηρήσω την τιμή για ένα συγκεκριμένο λεπτό/ώρα. Πώς μπορώ να το κάνω αυτό χωρίς να το αντιγράψω και να το επικολλήσω ως τιμή;
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Αγαπητή Μίρα,
Λυπούμαστε, δεν μπορώ να βοηθήσω με αυτό, μπορείτε να δημοσιεύσετε την ερώτησή σας στο φόρουμ μας: https://www.extendoffice.com/forum.html για να λάβετε περισσότερες υποστηρίξεις Excel από τον επαγγελματία μας.
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Γεια σας,
Είμαι πραγματικά νέος σε αυτό.
Προσπαθώ να δημιουργήσω ένα σύστημα τιμολόγησης στο excel.
Δημιούργησα 3 φύλλα.
1. Πρότυπο τιμολογίου (Τιμολόγιο)- Απλώς ένα γενικό τιμολόγιο που αποστέλλεται στους αντιπροσώπους μου κάθε εβδομάδα.

2. Ένα φύλλο δεδομένων (Δελτίο δεδομένων) για την ακρίβεια - όπου το τιμολόγιο μπορεί να διαβάσει τη διεύθυνση της επωνυμίας της εταιρείας κ.λπ., οπότε αν αλλάξει κάτι το τιμολόγιο θα ενημερώνεται αυτόματα.

3. Μια καρτέλα ημερολογίου (Ημερολόγιο 2018) για την ακρίβεια - που αναφέρεται στο πρότυπο τιμολογίου και βάζει την αντίστοιχη ημερομηνία και τον αριθμό τιμολογίου στα πραγματικά τιμολόγια.

Αυτό που θέλω να κάνω.
Η καρτέλα ημερολόγιο θα ήταν η κύρια σελίδα μου, πρόσθεσα ένα αναπτυσσόμενο κελί κατάστασης για κάθε εβδομάδα με τις επιλογές "Ενεργό" και "Κλειστό". Θα ήθελα να κλειδώσω ολόκληρη την καρτέλα "Τιμολόγιο" εάν το αντίστοιχο κελί έχει οριστεί σε "Κλειστό".

Ελπίζω να καταλαβαίνετε τι προσπαθώ να κάνω.
Ευχαριστώ εκ των προτέρων.
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Αγαπητέ Ando Veres.
Ο παρακάτω κώδικας VBA μπορεί να σας βοηθήσει. Τοποθετήστε τον κωδικό στο παράθυρο κωδικού φύλλου του Ημερολογίου 2018 αλλαγή A1 στο αναπτυσσόμενο κελί σας. Σας ευχαριστώ.

Προσωπικό φύλλο εργασίας Sub_change (ByVal Target As Range)
Dim xRg ως εύρος
On Error Συνέχιση Επόμενη
Ορισμός xRg = Τομή (Στόχος, Εύρος ("A1"))
Εάν το xRg δεν είναι τίποτα, τότε βγείτε από το Sub
Εάν Target.Validation.Type >= 0 Τότε
Εάν Target.Value = "Κλειστό" Τότε
Φύλλα ("Φύλλο δεδομένων"). Προστασία
ElseIf xRg.Value = "Active" Τότε
Φύλλα ("Φύλλο δεδομένων"). Κατάργηση προστασίας
End If
End If
Sub End
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Ετοιμάζω ένα πρότυπο διαχείρισης αποθεμάτων αποθήκης στο excel. Για να παραδώσω ένα απόθεμα πρέπει να εκδόσω ένα πάσο πύλης. Θέλω σε κάθε πάσο πύλης, τα αντίστοιχα δεδομένα θα ενημερώνονται στην ημερήσια σελίδα λήψης αποθεμάτων. Με την αλλαγή του σειριακού αρ. Η σειρά θα κλειδωθεί και η επόμενη θα γεμίσει.
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Καλή μέρα,
Θα ήταν ωραίο να ανεβάσετε το βιβλίο εργασίας σας εδώ. Σας ευχαριστούμε για το σχόλιό σας.
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Μπορείτε να με καθοδηγήσετε για το τι φταίει εδώ παρακαλώ; Ευχαριστώ εκ των προτέρων.

Προσωπικό φύλλο εργασίας Sub_change (ByVal Target As Range)
If Range("K:K") = "OVER STOCK" Τότε
Εύρος ("S:S"). Κλειδωμένο = Αληθινό
ElseIf Range("K:K") = "ΑΡΓΗ ΚΙΝΗΣΗ" Τότε
Εύρος ("S:S"). Κλειδωμένο = Αληθινό
ElseIf Range("K:K") = "NORMAL" Τότε
Εύρος ("S:S").Κλειδωμένο = False
ElseIf Range("K:K") = "SHORTAGE" Τότε
Εύρος ("S:S").Κλειδωμένο = False
End If
Sub End
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Θα θέλατε να με συμβουλεύσετε πώς να το διορθώσω; Ευχαριστώ εκ των προτέρων.

Προσωπικό φύλλο εργασίας Sub_change (ByVal Target As Range)
If Range("A:A") = "ΑΡΓΗ ΚΙΝΗΣΗ" Τότε
Εύρος ("B:B"). Κλειδωμένο = Αληθινό
ElseIf Range("A:A") = "OVER STOCK" Τότε
Εύρος ("B:B"). Κλειδωμένο = Αληθινό
ElseIf Range("A:A") = "NORMAL" Τότε
Εύρος ("B:B"). Κλειδωμένο = Λάθος
End If
Sub End
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Χωρίς να είμαι ειδικός της VB, θα έλεγα ότι έχετε πάρα πολλά "Elseif" - αν τα αλλάξετε όλα σε just IF εκτός από το τελευταίο, ελπίζω ότι θα λειτουργήσει.
Βασικά, αν ο Χ κάνει αυτό, αν ο Υ κάνει αυτό, αν ο Ζ κάνει αυτό, αν κανένα από αυτά - κάντε αυτό.
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Πώς θα ήταν ο κωδικός αν ήθελα να κλειδώσω ένα μπλοκ κελιών (Σειρές 6, 7 και 8/Γράμματα D έως U καθώς και κελιά F5 και J5) και να τα ξεκλειδώσετε όταν έβαζα ένα "X" στο κελί E5; Ευχαριστώ εκ των προτέρων!
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Γεια σου MitchyII,
Εννοείτε ότι το καθορισμένο μπλοκ κελιών έχει κλειδωθεί χειροκίνητα εκ των προτέρων και απλώς θέλετε να τα ξεκλειδώσετε πληκτρολογώντας ένα "X" στο κελί E5;
Εάν αφαιρέσετε το "X" από το κελί E5, θέλετε να κλειδώσετε ξανά τις περιοχές;
Χρειάζομαι περισσότερες λεπτομέρειες για το πρόβλημα.
Σας ευχαριστώ για το σχόλιό σας.
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Γεια σου Mitchyll (ή οποιονδήποτε), χτίζοντας την Crystal. Έχω κλειδώσει χειροκίνητα όλα τα κελιά και με βάση τις πληροφορίες στη στήλη G, θα ήθελα να παραμείνουν κλειδωμένα ή ξεκλειδωμένα. Παραδείγματα κελιών στη στήλη Η θα πρέπει να ξεκλειδωθούν ΜΟΝΟ εάν το "c/p" τοποθετηθεί στο προηγούμενο κελί της στήλης G
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Είναι δυνατόν να κλειδώσει ένα κελί, όταν φτάσει σε μια συγκεκριμένη τιμή;
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Γεια, μπορείτε να ελέγξετε τον λόγο για τον οποίο δεν λειτουργεί;

Προσωπικό φύλλο εργασίας Sub_change (ByVal Target As Range)
If Range("A3:A37").Τιμή <> "" Τότε
Εύρος ("B3:B37"). Κλειδωμένο = Αληθές
ElseIf Range("A3:A37") = "" Τότε
Εύρος ("B3:B37"). Κλειδωμένο = Λάθος
End If

If Range("B3:B37").Τιμή <> "" Τότε
Εύρος ("A3:A37"). Κλειδωμένο = Αληθινό
ElseIf Range("B3:B37") = "" Τότε
Εύρος ("A3:A37"). Κλειδωμένο = Λάθος
End If

Sub End


Σας ευχαριστώ πολύ εκ των προτέρων!!!
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Hi
Μόλις προσπάθησα να χρησιμοποιήσω τον παραπάνω κώδικα
και λέει σφάλμα τύπου 13 όταν προσπαθώ να το χρησιμοποιήσω.
θα μπορούσατε να με βοηθήσετε με αυτό;

ευχαριστώ
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Γεια σας,
Ποια έκδοση του Excel χρησιμοποιείτε;
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
hi

εάν πρέπει να κλειδώσω ένα κελί στο φύλλο 2 (κελί C4) βάσει αξίωσης από το φύλλο 1 (κελί C1),
εάν "όχι" στο φύλλο 1 C4? το φύλλο 2 πρέπει να είναι κλειδωμένο και πρέπει να μεταφέρει την τιμή από το φύλλο 1 C4,
στο φύλλο 2 Γ4.

εάν "ναι" στο φύλλο 1, πρέπει να μπορώ να πληκτρολογήσω το κελί στο φύλλο 2

Ευχαριστώ Benthe
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Γεια σας παρακαλώ οποιοσδήποτε να με βοηθήσει για τον κώδικα VBA.

αν επιλέξω από το αναπτυσσόμενο εύρος κελιών (A1:A1000) "abc" τότε δεν κλειδώσω το εύρος (D1:D1000) σε (F1:F1000)



αν επιλέξω από το αναπτυσσόμενο εύρος κελιών (A1:A1000) "abc" τότε δεν κλειδώσω το εύρος (D1:D1000) σε (F1:F1000)



εάν επιλέξω από το αναπτυσσόμενο εύρος κελιών (A1:A1000) "abc" τότε κλειδώσω το εύρος (D1:D1000) σε (F1:F1000)



δηλαδή αντίστοιχα κελιά A1 για D1 έως F1



A2 για για D2 έως F2
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Αντέγραψα τα πάντα από πάνω σε ένα φύλλο. Λειτούργησε για ένα δευτερόλεπτο και τώρα λαμβάνω το σφάλμα 'Δεν μπορώ να ορίσω την ιδιότητα κλειδωμένο της κατηγορίας Range'. Άνοιξα ακόμη και ένα εντελώς νέο φύλλο και αντέγραψα το παράδειγμά σου αυτολεξεί. Καμιά ιδέα τι συμβαίνει;
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Χαίρετε Κ.

Χρειάζομαι την εύνοιά σου. όταν επιλέγω καμία επιλογή από ένα κελί, θέλω οι παρακάτω στήλες να είναι κλειδωμένες/γκρίζες.

Είναι αυτό εφικτό? Δοκίμασα αυτή τη φόρμουλα αλλά δεν λειτούργησε

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

If Range("D90") = "Yes" Τότε

Εύρος ("C94:F104"). Κλειδωμένο = Λάθος

ElseIf Range("D90") = "Όχι" Τότε

Εύρος ("C94:F104"). Κλειδωμένο = Αληθές

End If

Sub End
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Γεια σου Στέφη,
Ο κώδικας λειτουργεί καλά.
Εάν θέλετε να κλειδώσετε το εύρος των κελιών για να αποτρέψετε την επεξεργασία, θα πρέπει να προστατεύσετε το φύλλο εργασίας με μη αυτόματο τρόπο, αφού επιλέξετε την επιλογή Όχι στο D90.
Και καθώς το D90 βρίσκεται στην περιοχή C94:F104, μετά την προστασία του φύλλου εργασίας, το D90 δεν μπορεί επίσης να επεξεργαστεί.
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Το D90 δεν είναι στην περιοχή. Είναι 4 σειρές πάνω από το C94
Δεν υπάρχουν σχόλια δημοσιεύτηκε ακόμα
Τοποθετήστε Περισσότερα
Αφήστε τα σχόλιά σας
Δημοσίευση ως επισκέπτης
×
Αξιολογήστε αυτήν την ανάρτηση:
0   Χαρακτήρες
Προτεινόμενες τοποθεσίες

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

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