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

Cum se face ca o anumită celulă să intre obligatoriu înainte de a închide registrul de lucru?

Când distribuiți un registru de lucru altor utilizatori pentru efectuarea unui sondaj care necesită înregistrarea numelui real, de exemplu, fiecare utilizator care face obiectul anchetei trebuie să-și introducă numele în B1. Dar, în anumite momente, unii utilizatori pot închide registrul de lucru după investigație fără a-și introduce numele. În acest articol, introduc un VBA pentru a face obligatorie o anumită celulă înainte de a închide registrul de lucru.

Faceți ca o celulă să intre obligatoriu cu VBA


săgeată albastru dreapta balon Faceți ca o celulă să intre obligatoriu cu VBA

1. Activați registrul de lucru care conține celula obligatorie și apăsați Alt + F11 tastele pentru a deschide Microsoft Visual Basic pentru aplicații fereastră.

2. În Proiect , faceți dublu clic Acest manual de lucru, și du-te pentru a selecta Workbook și Înainte de Închidere din lista de secțiuni din dreapta, apoi lipiți codul de mai jos în script. Vedeți captura de ecran:

VBA: Faceți o celulă obligatorie

    If Cells(1, 2).Value = "" Then
        MsgBox "Cell B1 requires user input", vbInformation, "Kutools for Excel"
        Cancel = True
    End If

doc obligatoriu introduceți 1

3. Apoi salvați acest cod și închideți această fereastră popping. Acum, dacă celula B1 este necompletată când închideți registrul de lucru, va apărea dialogul de mai jos pentru a vă reaminti să introduceți ceva în B1. Vedeți captura de ecran:
doc obligatoriu introduceți 2

varful: Puteți schimba celula B1 cu alte celule dorite.


Cele mai bune instrumente de productivitate Office

Kutools pentru Excel vă rezolvă majoritatea problemelor și vă crește productivitatea cu 80%

  • reutilizarea: Introduceți rapid formule complexe, diagrame și orice ai folosit anterior; Criptați celulele cu parola; Creați o listă de corespondență și trimiteți e-mailuri ...
  • Super Formula Bar (editați cu ușurință mai multe linii de text și formulă); Layout de citire (citiți și editați cu ușurință un număr mare de celule); Lipiți la interval filtrat...
  • Merge celule / rânduri / coloane fără a pierde date; Conținut de celule divizate; Combinați rânduri / coloane duplicate... Prevenirea celulelor duplicate; Comparați gamele...
  • Selectați Duplicat sau Unic Rânduri; Selectați Rânduri goale (toate celulele sunt goale); Super Find și Fuzzy Find în multe cărți de lucru; Selectare aleatorie ...
  • Copie exactă Mai multe celule fără modificarea referinței formulelor; Creați automat referințe la foi multiple; Introduceți gloanțe, Casete de selectare și multe altele ...
  • Extrageți textul, Adăugați text, eliminați după poziție, Eliminați spațiul; Creați și imprimați subtotaluri de paginare; Convertiți conținutul dintre celule și comentarii...
  • Super Filtru (salvați și aplicați scheme de filtrare altor foi); Sortare avansată după lună / săptămână / zi, frecvență și multe altele; Filtru special cu bold, italic ...
  • Combinați cărți de lucru și foi de lucru; Merge Tables pe baza coloanelor cheie; Împărțiți datele în mai multe foi; Conversia în loturi xls, xlsx și PDF...
  • Peste 300 de funcții puternice. Suportă Office / Excel 2007-2021 și 365. Acceptă toate limbile. Implementare ușoară în întreprinderea sau organizația dvs. Funcții complete Probă gratuită de 30 de zile. Garanție de returnare a banilor de 60 de zile.
fila kte 201905

Fila Office aduce interfața cu file în Office și vă face munca mult mai ușoară

  • Activați editarea și citirea cu file în Word, Excel, PowerPoint, Publisher, Access, Visio și Project.
  • Deschideți și creați mai multe documente în filele noi ale aceleiași ferestre, mai degrabă decât în ​​ferestrele noi.
  • Vă crește productivitatea cu 50% și reduce sute de clicuri de mouse pentru dvs. în fiecare zi!
fundul officetab
Comentarii (27)
Încă nu există evaluări. Fii primul care evaluează!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Cum fac coloana D16-D300 obligatorie dacă coloana B16-300 are valori? Am folosit codul de mai jos pentru rândul 16 și am încercat variante, dar nu funcționează. orice ajutor este foarte apreciat! „Afacerea noastră este un câmp obligatoriu – trebuie să remediați dacă nu există niciunul și apare o fereastră Private Sub Workbook_BeforeClose(Cancel As Boolean) „Pasul 1: Verificați dacă Celula A1 este goală If Sheets(„Sensitive Leave Tracker”). ("B16").Value "" And Sheets("Sensitive Leave Tracker").Range("D16").Value = "" Apoi „Pasul 2: Gol: anulați Închiderea și spuneți utilizatorului Cancel = True MsgBox „Nu se poate închideți câmpul obligatoriu" 'Pasul 3: Nu este necompletat; Salvați și închideți Else ActiveWorkbook.Close SaveChanges:=True End If End Sub
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună, scuze că răspund atât de târziu. Iată codul macro de care este posibil să aveți nevoie. Dacă funcționează, vă rog să-mi spuneți. Mulțumiri!

Dacă Application.WorksheetFunction.CountA(Range("B16:B300")) > 0, atunci

Dacă Application.WorksheetFunction.CountA(Range("D16:D300")) <> Range("D16:D300").Count Then

MsgBox „Celula D16:D300 necesită intrarea utilizatorului”, vbInformation, „Kutools pentru Excel”

Anulare = Adevărat

Final, dacă

Final, dacă
Acest comentariu a fost redus la minimum de moderatorul de pe site
cum fac coloana Q7-Q500 obligatorie dacă coloana B7-B500 are valori

Nu vreau să salvez fișierul înainte de a completa fișierul obligatoriu.

de exemplu.
Dacă pun orice valoare/Text în coloana D7 la D500, atunci coloana Q7 la Q500 ar trebui să fie Obligatorie. (fereastră pop-up)
Dacă nu am pus nicio valoare/text în coloana D7 la D500, atunci Q7 la Q500 ar trebui să fie goale
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună, încercați mai sus de VBA și schimbați referința la nevoia dvs.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Ai amendat vreodată un răspuns la asta?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Scuze, la ce întrebare vrei să spui?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună, mulțumesc pentru această formulă, funcționează!

Totuși, acum am creat un șablon în care mai multe celule sunt obligatorii de completat. Dar după ce am creat șablonul și am intrat în macro, nu îl pot închide, pentru că trebuie să completez celulele :) Deci, nu pot trimite un șablon... (unde celulele obligatorii trebuie să fie încă goale)


Ma poti ajuta?

Multumesc!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Vreo actualizare în acest sens?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Si pe mine ma intereseaza asta, multumesc!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Am aceeasi problema. Există o modalitate de a face o celulă obligatorie, dar goală pentru un șablon?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună tuturor, am găsit că soluția a fost întreruperea macrocomenzii în ecranul alt+f11. Apoi poate fi salvat și va reporni la următoarea deschidere. Pentru a face acest lucru, apăsați alt + f11, apoi în rândul de pictograme de deasupra ferestrei (aceeași ca în cazul în care este pictograma albastră a discului fișierului) veți vedea pictogramele Play, Pause, Stop în verde și albastru (ar trebui să fie sub Debug and Run Opțiuni). Faceți clic pe butonul de pauză din mijloc, apoi puteți salva.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună tuturor, am găsit că soluția a fost întreruperea macrocomenzii în ecranul alt+f11. Apoi poate fi salvat și va reporni la următoarea deschidere. Pentru a face acest lucru, apăsați alt + f11, apoi în rândul de pictograme de deasupra ferestrei (aceeași ca în cazul în care este pictograma albastră a discului fișierului) veți vedea pictogramele Play, Pause, Stop în verde și albastru (ar trebui să fie sub Debug and Run Opțiuni). Faceți clic pe butonul de pauză din mijloc, apoi puteți salva.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună, încercați codul de mai jos, ceea ce va forța pe alți utilizatori să introducă valoarea în intervalul A7:M7 înainte de a închide registrul de lucru, dar permiteți-vă să închideți registrul de lucru fără a-l completa.
Observație: schimbați floarea-soarelui cu propriul nume de utilizator. Pentru a găsi și edita numele dvs. de utilizator, faceți clic pe Fișier > Opțiuni > General > Nume utilizator.
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim rg As Range
Dim rgs As Range
Set rgs = Application.Range("A7:M7")
If Application.UserName = "sunflower" Then
Exit Sub
End If
    For Each rg In rgs
        If rg.Value = "" Then
        MsgBox "Range A7:M7 requires user input", vbInformation, "Kutools for Excel"
        Cancel = True
        Exit Sub
       End If
    Next
End Sub

Sper că acest cod vă poate ajuta.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Există vreo modalitate prin care celulele necesare f4 și F5 să aibă date înainte de a închide sau de a salva?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Doar schimbați B1 în F4 și F5 în caseta de text pentru a le reaminti utilizatorilor.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Vreau să fac obligatorii rândurile de la C2 la C7 și de la C13 la C19 obligatorii?

Orice ajutor?

2 seturi de intervale sunt aici, dar sub aceeași coloană.
Acest comentariu a fost redus la minimum de moderatorul de pe site
vreau să fac semnele de bifare obligatorii în foaie
Acest comentariu a fost redus la minimum de moderatorul de pe site
Există o modalitate de a face obligatorie introducerea de celule înainte ca un buton de comandă Active X să poată fi utilizat? Am configurat un buton de comandă pentru a trimite un formular prin e-mail, dar vreau să fac anumite celule obligatorii înainte ca butonul să trimită e-mailul.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună, Craig, îmi pare rău că această problemă nu poate fi rezolvată aici, poate te poate ajuta alții.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Întrebare, codul a funcționat, dar cum se poate alege un interval de la A7:M7 până la ultimul rând?

și ori de câte ori utilizatorul va salva sau închide registrul de lucru, câmpul obligatoriu trebuie completat
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună, Lester, iată un cod pe care l-am modificat care vă poate ajuta, schimbați intervalul A2:F2 la intervalul după cum aveți nevoie.
Private Sub Workbook_BeforeClose(Cancel As Boolean)
'UpdatebyExtend20220916
Dim xRgCount As Integer

Dim xURg As Range

Dim xStr As String

Dim xWSh As Worksheet

Dim xRg, xRg1, xRg2, xRg3 As Range

xStr = "A2:F2"

 

Set xWSh = Application.ActiveSheet

Set xRg = xWSh.Range(xStr)

Set xURg = xWSh.UsedRange

Set xRg1 = xWSh.Cells.Item(xRg.Row + xRg.Rows.Count, 1)

Set xRg2 = xURg.Item(xURg.Count)

Set xRg3 = xWSh.Range(xRg1, xRg2)

Debug.Print xRg3.Address

If (xURg.Row + xURg.Rows.Count - 1) > (xRg.Row + xRg.Rows.Count - 1) Then

   If Application.WorksheetFunction.CountA(xRg3) <> xRg3.Count Then

    MsgBox "There are blank cells under range A2:F2", vbInformation, "Kutools for Excel"

Cancel = True

   End If

End If

End Sub


Acest comentariu a fost redus la minimum de moderatorul de pe site
Este posibil să creați un cod într-un registru de lucru nou generat? scenariul este, voi genera un nou registru de lucru, iar acel registru de lucru generat trebuie să aibă un câmp obligatoriu de completat, utilizatorul nu poate salva decât dacă nu este completat câmpul obligatoriu. Am creat deja, am generat un nou registru de lucru. problema mea este că noul registru de lucru generat nu are cod.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Is het mogelijk om als regel erin te zetten dat als C1 een bepaalde tekst bevat dan D1 ook ingevuld moet worden. Dit moet gelden voor circa 2.000 de regels. Het bestand wordt elke keer aangevuld dus het moet alleen gelden voor het aantal regels die nu zijn ingevuld.

Wanneer ik volgende function erin zet werkt het niet zoals ik wil omdat ik dan meldingen krijg van cellen die nog aangevuld moeten worden en ik wil een tekst als waarde en geen cijfer.

Als Application.WorksheetFunction.CountA(Range("B16:B300")) > 0 apoi

Dacă Application.WorksheetFunction.CountA(Range("D16:D300")) <> Range("D16:D300").Count Then

MsgBox „Cell D16:D300 vereist gebruikersinvoer”, vbInformation, „Kutools for Excel”

Annuleren = Waar

Final, dacă

Final, dacă

gr emma
Acest comentariu a fost redus la minimum de moderatorul de pe site
Pot să vă trimit documentul prin e-mail, astfel încât să mă puteți sfătui cel mai bine cum să implementez codul VBA, astfel încât fișierul să nu poată fi salvat dacă fiecare rând nu este complet populat? Al meu e cam complicat. Voi aprecia ajutorul, am încercat atât de mult timp.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună, aici este un cod, va apărea un dialog pentru a reaminti utilizatorului care celulă este necesară introdusă, iar registrul de lucru nu poate fi închis și salvat până când toate celulele din intervalul a1:c3 sunt umplute cu conținut.
Vă rugăm să modificați scriptul din cod:
1. modificați intervalul după cum aveți nevoie,
2. Schimbați numele de utilizator „Kutools for Excel” din cod cu propriul nume de utilizator (vă rugăm să vă asigurați că alt utilizator nu are același nume de utilizator cu dvs.)

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    
    If Application.UserName <> "Kutools for Excel" Then

        Set Rg = Sheets("Sheet2").Range("a1:c3")

        If WorksheetFunction.CountBlank(Rg) > 0 Then

            MsgBox Rg.Parent.Name & " " & Rg.Address & " requires user input", vbInformation, "Kutools for Excel"
            Cancel = True
        End If
    End If

End Sub
Acest comentariu a fost redus la minimum de moderatorul de pe site
Scuzati-ma domnule,

Pentru cineva care folosește VBA pentru prima dată, puteți oferi câteva îndrumări despre cum să inițieți acest lucru? Vreau ca fiecare rând să aibă aceeași caracteristică IE (până când unul completează toate informațiile de pe rând)
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună, PM, trebuie doar să urmați pașii din acest articol, apoi să înlocuiți codul cu codul pe care vi l-am furnizat și apoi să îl salvați. Și când partajați registrul de lucru altora al căror nume de utilizator este diferit de dvs., li se va cere să completeze fiecare celulă din interval (a1:c3, îl puteți modifica în cod) până când le completează pe toate.
Nu există comentarii postate aici încă
Lăsa comentarii
Postare ca invitat
×
Evaluează această postare:
0   Caractere
Locații sugerate

Urmărește-ne

Copyright © 2009 - www.extendoffice.com. | Toate drepturile rezervate. Cu sprijinul ExtendOffice. | Harta site-ului
Microsoft și sigla Office sunt mărci comerciale sau mărci comerciale înregistrate ale Microsoft Corporation în Statele Unite și / sau în alte țări.
Protejat de Sectigo SSL