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

Kako določeno celico obvezno vnesti pred zaprtjem delovnega zvezka?

Ko delite delovni zvezek z drugimi uporabniki za izvedbo ankete, ki zahteva na primer registracijo pravega imena, mora vsak uporabnik v preiskavi svoje ime vnesti v B1. Toda včasih lahko nekateri uporabniki po preiskavi zaprejo delovni zvezek, ne da bi vnesli svoja imena. V tem članku predstavljam VBA, s katerim določeno celico obvezno obvezno pred zaprtjem delovnega zvezka.

Naj bo celica obvezna za vnos z VBA


puščica modri desni mehurček Naj bo celica obvezna za vnos z VBA

1. Omogočite delovni zvezek, ki vsebuje obvezno celico, in pritisnite Alt + F11 tipke za odpiranje Microsoft Visual Basic za aplikacije okno.

2. V Ljubljani Projekt podokno, dvokliknite Ta delovni zvezekin pojdite na izberite Delovni zvezek in Pred Zapri z desnega seznama odsekov, nato v skript prilepite spodnjo kodo. Oglejte si posnetek zaslona:

VBA: Naj bo celica obvezna

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

doc mandantori vpiši 1

3. Nato shranite to kodo in zaprite to pojavno okno. Če je celica B1 prazna, ko zaprete delovni zvezek, se bo prikazalo spodnje pogovorno okno, ki vas bo opozorilo, da morate nekaj vnesti v B1. Oglejte si posnetek zaslona:
doc mandantori vpiši 2

Nasvet: Celico B1 lahko spremenite v druge celice, ki jih želite.


Najboljša orodja za pisarniško produktivnost

Kutools za Excel rešuje večino vaših težav in poveča vašo produktivnost za 80%

  • Ponovna uporaba: Hitro vstavite zapletene formule, grafikoni in vse, kar ste že uporabljali; Šifriraj celice z geslom; Ustvari poštni seznam in pošiljanje e-pošte ...
  • Vrstica Super Formula (enostavno urejanje več vrstic besedila in formule); Bralna postavitev (enostavno branje in urejanje velikega števila celic); Prilepite v filtrirani obseg...
  • Združi celice / vrstice / stolpce brez izgube podatkov; Vsebina razdeljenih celic; Združi podvojene vrstice / stolpce... prepreči podvojene celice; Primerjaj obsege...
  • Izberite Duplicate ali Unique Vrstice; Izberite prazne vrstice (vse celice so prazne); Super Find in Fuzzy Find v mnogih delovnih zvezkih; Naključna izbira ...
  • Natančna kopija Več celic brez spreminjanja sklica formule; Samodejno ustvarjanje referenc na več listov; Vstavi oznake, Potrditvena polja in še več ...
  • Izvleček besedila, Dodaj besedilo, Odstrani po položaju, Odstrani presledek; Ustvari in natisni vmesne seštevke strani Pretvarjanje med vsebino celic in komentarji...
  • Super filter (shranite in uporabite sheme filtrov za druge liste); Napredno razvrščanje glede na mesec / teden / dan, pogostost in drugo; Poseben filter s krepko, ležeče ...
  • Združite delovne zvezke in delovne liste; Spoji tabele na podlagi ključnih stolpcev; Razdelite podatke na več listov; Paketna pretvorba xls, xlsx in PDF...
  • Več kot 300 zmogljivih funkcij. Podpira Office / Excel 2007-2021 in 365. Podpira vse jezike. Enostavna uvedba v vašem podjetju ali organizaciji. 30-dnevna brezplačna preizkusna različica vseh funkcij. 60-dnevna garancija vračila denarja.
zavihek kte 201905

Kartica Office prinaša vmesnik z zavihki v Office in poenostavi vaše delo

  • Omogočite urejanje in branje z zavihki v Wordu, Excelu, PowerPointu, Publisher, Access, Visio in Project.
  • Odprite in ustvarite več dokumentov v novih zavihkih istega okna in ne v novih oknih.
  • Poveča vašo produktivnost za 50%in vsak dan zmanjša na stotine klikov miške za vas!
dno pisarniške mize
Komentarji (30)
Ocene še ni. Bodite prvi in ​​ocenite!
Ta komentar je moderator na spletnem mestu minimiziral
kako naredim stolpec D16-D300 obvezen, če ima stolpec B16-300 vrednosti? Uporabil sem spodnjo kodo za vrstico 16 in poskusil različice, vendar ne deluje. vsaka pomoč je zelo cenjena! 'us business kot obvezno polje- morate popraviti, če ni nobenega in se prikaže okno Private Sub Workbook_BeforeClose(Cancel As Boolean) '1. korak: Preverite, ali je celica A1 prazna. Če so listi ("Sensitive Leave Tracker").Range ("B16").Vrednost "" In Sheets("Sensitive Leave Tracker").Range("D16").Value = "" Nato 'Korak 2: Prazen: prekličite Zapri in povejte uporabniku Prekliči = True MsgBox "Ne morem potrebno zaprite polje" '3. korak: ni prazno; Save and Close Else ActiveWorkbook.Close SaveChanges:=True End If End Sub
Ta komentar je moderator na spletnem mestu minimiziral
Pozdravljeni, oprostite za tako pozen odgovor. Tukaj je koda makra, ki jo morda potrebujete. Če deluje, mi prosim sporočite. Hvala!

Če Application.WorksheetFunction.CountA(Range("B16:B300")) > 0, potem

Če Application.WorksheetFunction.CountA(Range("D16:D300")) <> Range("D16:D300").Count Potem

MsgBox "Celica D16:D300 zahteva uporabniški vnos", vbInformation, "Kutools za Excel"

Prekliči = Res

Konec Če

Konec Če
Ta komentar je moderator na spletnem mestu minimiziral
kako naj naredim stolpec Q7-Q500 obvezen, če ima stolpec B7-B500 vrednosti

Ne želim shraniti flle, preden izpolnim obvezno datoteko.

npr.
Če dam katero koli vrednost/besedilo v stolpec D7 do D500, bi moral biti stolpec Q7 do Q500 obvezen. (pojavno okno)
Če v stolpec D7 do D500 nisem vnesel nobene vrednosti/besedila, naj bodo Q7 do Q500 prazne
Ta komentar je moderator na spletnem mestu minimiziral
Živjo, poskusite nad VBA in spremenite referenco glede na svoje potrebe.
Ta komentar je moderator na spletnem mestu minimiziral
Ste kdaj kaznovali odgovor na to?
Ta komentar je moderator na spletnem mestu minimiziral
Oprostite, katero vprašanje mislite?
Ta komentar je moderator na spletnem mestu minimiziral
Pozdravljeni, hvala za to formulo, deluje!

Sedaj pa sem ustvaril predlogo, v kateri je obvezno izpolniti več celic. Ko pa ustvarim predlogo in vnesem makro, je ne morem zapreti, ker moram izpolniti celice :) Torej ne morem poslati predloge...(kjer morajo biti obvezne celice še vedno prazne)


Mi lahko pomagaš?

Hvala!
Ta komentar je moderator na spletnem mestu minimiziral
Kakšna posodobitev o tem?
Ta komentar je moderator na spletnem mestu minimiziral
Tudi mene to zanima, hvala!
Ta komentar je moderator na spletnem mestu minimiziral
Imam isto težavo. Ali obstaja način, da naredite celico obvezno, vendar prazno za predlogo?
Ta komentar je moderator na spletnem mestu minimiziral
Pozdravljeni vsi, ugotovil sem, da je rešitev začasno zaustaviti makro na zaslonu alt+f11. Nato ga je mogoče shraniti in se bo znova zagnal, ko ga boste naslednjič odprli. Če želite to narediti, pritisnite alt + f11, nato pa v vrstici ikon nad oknom (enaka kot je ikona majhne modre ikone diska z datotekami) boste videli ikone Play, Pause, Stop v zeleni in modri barvi (bi morale biti pod Odpravi napake in zaženi opcije). Kliknite srednji gumb za premor, nato pa lahko shranite.
Ta komentar je moderator na spletnem mestu minimiziral
Pozdravljeni vsi, ugotovil sem, da je rešitev začasno zaustaviti makro na zaslonu alt+f11. Nato ga je mogoče shraniti in se bo znova zagnal, ko ga boste naslednjič odprli. Če želite to narediti, pritisnite alt + f11, nato pa v vrstici ikon nad oknom (enaka kot je ikona majhne modre ikone diska z datotekami) boste videli ikone Play, Pause, Stop v zeleni in modri barvi (bi morale biti pod Odpravi napake in zaženi opcije). Kliknite srednji gumb za premor, nato pa lahko shranite.
Ta komentar je moderator na spletnem mestu minimiziral
Pozdravljeni, preizkusite spodnjo kodo, ki bo prisilila druge uporabnike, da vnesejo vrednost v obseg A7:M7, preden zaprejo delovni zvezek, vendar dovolite sebi, da delovni zvezek strnete brez polnjenja.
Opomba: spremenite sončnico v svoje uporabniško ime. Če želite poiskati in urediti svoje uporabniško ime, kliknite Datoteka > Možnosti > Splošno > Uporabniško ime.
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

Upam, da vam bo ta koda lahko pomagala.
Ta komentar je moderator na spletnem mestu minimiziral
Ali obstaja način, da lahko zahtevani celici f4 in F5 vsebujeta podatke, preden zaprem ali shranim?
Ta komentar je moderator na spletnem mestu minimiziral
Preprosto spremenite B1 v F4 in F5 v besedilnem polju, da opomnite uporabnike.
Ta komentar je moderator na spletnem mestu minimiziral
Želim narediti vrstice C2 do C7 obvezne in C13 do C19 obvezne?

Kakšna pomoč?

2 niza obsegov sta tukaj, vendar pod istim stolpcem.
Ta komentar je moderator na spletnem mestu minimiziral
želim narediti kljukice obvezne na listu
Ta komentar je moderator na spletnem mestu minimiziral
Ali obstaja način, da postane vnos celic obvezen, preden lahko uporabite ukazni gumb Active X? Imam nastavljen ukazni gumb za pošiljanje obrazca po e-pošti, vendar želim narediti nekatere celice obvezne, preden bo gumb poslal e-pošto.
Ta komentar je moderator na spletnem mestu minimiziral
Živjo, Craig, žal te težave ni mogoče rešiti tukaj, morda ti lahko kaj drugega pomaga.
Ta komentar je moderator na spletnem mestu minimiziral
Vprašanje, koda je delovala, toda kako lahko izberem obseg od A7:M7 do zadnje vrstice?

in kadarkoli bo uporabnik shranil ali zaprl delovni zvezek, mora biti obvezno polje izpolnjeno
Ta komentar je moderator na spletnem mestu minimiziral
Živjo, Lester, tukaj je koda, ki smo jo spremenili, ti lahko pomaga, spremeni obseg A2:F2 v obseg, kot ga potrebuješ.
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


Ta komentar je moderator na spletnem mestu minimiziral
Ali je mogoče ustvariti kodo v novo ustvarjenem delovnem zvezku? scenarij je, da bom ustvaril nov delovni zvezek in ta ustvarjeni delovni zvezek mora imeti obvezno polje, ki ga je treba izpolniti, uporabnik ne more shraniti, razen če ni izpolnjenega obveznega polja. Ustvaril sem že, generiral nov delovni zvezek. moja težava je, da novo ustvarjeni delovni zvezek nima kode.
Ta komentar je moderator na spletnem mestu minimiziral
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 za približno 2.000 regelov. Het bestand wordt elke keer aangevuld dus het moet alleen gelden voor het aantal regels die nu zijn ingevuld.

Wanneer ik volgende functie 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 nato

Če Application.WorksheetFunction.CountA(Range("D16:D300")) <> Range("D16:D300").Count Potem

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

Annuleren = Waar

Konec Če

Konec Če

gr emma
Ta komentar je moderator na spletnem mestu minimiziral
Ali vam lahko pošljem dokument po e-pošti, da mi boste najbolje svetovali, kako implementirati kodo VBA, tako da datoteke ni mogoče shraniti, če vsaka vrstica ni v celoti izpolnjena? Moj je malo zapleten. Hvaležen bom za pomoč, tako dolgo se trudim.
Ta komentar je moderator na spletnem mestu minimiziral
Živjo, tukaj je koda, odpre se pogovorno okno, ki uporabnika opomni, katero celico mora vnesti, delovnega zvezka pa ni mogoče zapreti in shraniti, dokler niso vse celice v obsegu a1:c3 napolnjene z vsebino.
Prosimo, spremenite skript v kodi:
1. spremenite obseg, kot ga potrebujete,
2. spremenite uporabniško ime "Kutools for Excel" v kodi v svoje lastno uporabniško ime (prosimo, poskrbite, da drug uporabnik nima istega uporabniškega imena z vami)

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
Ta komentar je moderator na spletnem mestu minimiziral
Oprostite gospod,

Ali lahko nekomu, ki prvič uporablja VBA, ponudite nekaj navodil, kako to začeti? Želim, da ima vsaka vrstica enako funkcijo IE (dokler ena ne izpolni vseh informacij v vrstici)
Ta komentar je moderator na spletnem mestu minimiziral
Živjo, PM, sledite korakom v tem članku, nato zamenjajte kodo s kodo, ki sem vam jo posredoval, in jo nato shranite. In ko delite delovni zvezek z drugimi, katerih uporabniško ime se razlikuje od vašega, bodo pozvani, da izpolnijo vse celice v obsegu (a1:c3, to lahko spremenite v kodi), dokler ne izpolnijo vseh.
Ta komentar je moderator na spletnem mestu minimiziral
Najlepša hvala, opravičujem se, ker nisem odgovoril.
Ta komentar je moderator na spletnem mestu minimiziral
Kako naj to naredim, če želim uporabiti celoten delovni zvezek z izjemo nekaj stolpcev. Imam stolpce A:AA in trenutno imam 4,527 vrstic, vendar jih bo dodanih še več in moral bom zagotoviti, da imajo nove vrstice enake zahteve. Zahtevajo se vsa polja razen spodnjih.

• Artemida (stolpec A)
• Lokacija gostiteljskega dostopa (stolpec H)
• Orodje za ustvarjanje (Sintezija) (stolpec R)
• Iskalni izrazi (stolpec U)
• Opombe (stolpec V)
• eReview SME (stolpec Z)
• Glasovni talent (stolpec AA)

Ali mi lahko pomagate, kako lahko to nastavim in vključim vse prihodnje dodane vrstice?
Ta komentar je moderator na spletnem mestu minimiziral
Kako naj to naredim, če želim uporabiti celoten delovni zvezek z izjemo nekaj stolpcev. Imam stolpce A:AA in trenutno imam 4,527 vrstic, vendar jih bo dodanih še več in moral bom zagotoviti, da imajo nove vrstice enake zahteve. Zahtevajo se vsa polja razen spodnjih.

• Artemida (stolpec A)
• Lokacija gostiteljskega dostopa (stolpec H)
• Orodje za ustvarjanje (Sintezija) (stolpec R)
• Iskalni izrazi (stolpec U)
• Opombe (stolpec V)
• eReview SME (stolpec Z)
• Glasovni talent (stolpec AA)

Ali mi lahko pomagate, kako lahko to nastavim in vključim vse prihodnje dodane vrstice?
Tu še ni objavljenih komentarjev
Pustite vaše komentarje
Objava kot gost
×
Ocenite to objavo:
0   Znaki
Predlagane lokacije

Sledi nam

Copyright © 2009 - www.extendoffice.com. | Vse pravice pridržane. Poganja ga ExtendOffice. | Kazalo
Microsoft in logotip Office sta blagovni znamki ali registrirani blagovni znamki družbe Microsoft Corporation v ZDA in / ali drugih državah.
Zaščiteno s Sectigo SSL