Note: The other languages of the website are Google-translated. Back to English
Belépek  \/ 
x
or
x
Regisztráció  \/ 
x

or

Hogyan lehet megakadályozni a mentést, ha egy adott cella üres az Excelben?

Például megtervezett egy űrlapot a munkalapon, és megosztotta a kollégákkal. Reméled, hogy kollégáid kitöltik a nevüket az adott cellába, hogy jelezzék, ki írta be ezt az űrlapot, különben megakadályozhatnák őket az űrlap mentésében, hogyan tehetnéd? Itt bemutatok egy VBA makrót, hogy megakadályozzuk a munkafüzet mentését, ha az adott cella üres az Excelben.

Az Office fül lehetővé teszi a füles szerkesztést és böngészést az Office-ban, és sokkal könnyebbé teszi a munkáját ...
A Kutools for Excel megoldja a legtöbb problémát, és 80% -kal növeli a termelékenységet
  • Bármely újrafelhasználása: Adja hozzá a leggyakrabban használt vagy összetett képleteket, diagramokat és bármi mást a kedvenceihez, és a későbbiekben gyorsan használja fel újra.
  • Több mint 20 szöveges szolgáltatás: Szám kivonása a szöveges karakterláncból; Bontsa ki vagy távolítsa el a szövegek egy részét; Számok és pénznemek konvertálása angol szavakká.
  • Eszközök egyesítése: Több munkafüzet és lap egybe; Egyesítsen több cellát / sort / oszlopot adatok elvesztése nélkül; Az ismétlődő sorok és összeg összevonása.
  • Felosztott eszközök: Az adatok felosztása több lapra az érték alapján; Egy munkafüzet több Excel, PDF vagy CSV fájlhoz; Egy oszlop több oszlopra.
  • Ugrás beillesztése Rejtett / szűrt sorok; Gróf és összeg háttérszínnel; Személyre szabott e-maileket küldhet több címzettnek tömegesen.
  • Szuper szűrő: Hozzon létre speciális szűrősémákat, és alkalmazza azokat bármilyen lapra; Fajta hét, nap, gyakoriság és egyebek szerint; Szűrő félkövérrel, képletekkel, megjegyzésekkel ...
  • Több mint 300 hatékony funkció; Az Office 2007-2019 és a 365 programokkal működik; Támogatja az összes nyelvet; Könnyű üzembe helyezés a vállalkozásban vagy a szervezetben.


nyíl kék jobb buborékMegakadályozhatja a mentést, ha egy adott cella üres az Excelben

Az aktuális munkafüzet mentésének megakadályozása érdekében, ha az adott cella üres az Excelben, könnyen alkalmazhatja a következő VBA makrót.

1. lépés: Nyissa meg a Microsoft Visual Basic for Applications ablakot a más + F11 gombok közben.

2. lépés: A Project Explorerben bontsa ki a VBAProject (A munkafüzet neve.xlsm) Microsoft Excel objektumok, majd kattintson duplán a Ez a munkafüzet. Lásd a bal oldali képernyőképet:

3. lépés: A ThisWorkbook nyíló ablakba illessze be a következő VBA makrót:

VBA makró: A mentés megakadályozása, ha egy adott cella üres

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If Application.Sheets("TEST").Range("A1").Value = "" Then
Cancel = True
MsgBox "Save cancelled"
End If
End Sub
Megjegyzés: A VBA-kódban a "TEST" a munkalap konkrét neve és a "A1"a konkrét cella, és szükség szerint megváltoztathatja őket.

Ha az adott cella üres az aktuális munkafüzetben, a mentéskor megjelenik egy figyelmeztető párbeszédpanel, amely "Mentés törölveLásd a következő képernyőképet:


nyíl kék jobb buborékKapcsolódó cikkek


A legjobb irodai termelékenységi eszközök

A Kutools for Excel megoldja a legtöbb problémát, és 80% -kal növeli a termelékenységet

  • újrafelhasználás: Gyorsan helyezze be összetett képletek, diagramok és bármi, amit korábban használt; Cellák titkosítása jelszóval; Levelezőlista létrehozása és e-maileket küldeni ...
  • Szuper Formula Bár (könnyedén szerkeszthet több szöveget és képletet); Olvasás elrendezés (könnyen olvasható és szerkeszthető nagyszámú cella); Beillesztés a Szűrt tartományba...
  • Cellák / sorok / oszlopok egyesítése az adatok elvesztése nélkül; Osztott cellák tartalma; Kombinálja a duplikált sorokat / oszlopokat... megakadályozza az ismétlődő cellákat; Hasonlítsa össze a tartományokat...
  • Válassza a Másolat vagy az Egyedi lehetőséget Sorok; Válassza az Üres sorok lehetőséget (az összes cella üres); Super Find és Fuzzy Find sok munkafüzetben; Véletlenszerű kiválasztás ...
  • Pontos másolás Több cella a képletreferencia megváltoztatása nélkül; Automatikus referenciák létrehozása több lapra; Helyezze be a golyókat, Jelölőnégyzetek és még sok más ...
  • Kivonat szöveg, Szöveg hozzáadása, Eltávolítás pozíció szerint, Hely eltávolítása; Hozz létre és nyomtasson személyhívó részösszegeket; Konvertálás a cellatartalom és a megjegyzések között...
  • Szuper szűrő (mentse el és alkalmazza a szűrősémákat más lapokra); Haladó rendezés hónap / hét / nap, gyakoriság és egyebek szerint; Speciális szűrő félkövér, dőlt betűvel ...
  • Kombinálja a munkafüzeteket és a munkalapokat; Táblázatok egyesítése kulcsoszlopok alapján; Az adatok felosztása több lapra; Kötegelt konvertálás xls, xlsx és PDF...
  • Több mint 300 hatékony funkció. Támogatja az Office / Excel 2007-2019 és 365. Támogatja az összes nyelvet. Könnyen telepíthető a vállalkozásba vagy szervezetbe. 30 napos ingyenes próbaverzió. 60 napos pénzvisszafizetési garancia.
kte tab 201905

Az Office fül a füles felületet hozza az Office-ba, és sokkal könnyebbé teszi a munkáját

  • Füles szerkesztés és olvasás engedélyezése Wordben, Excelben és PowerPointban, Publisher, Access, Visio és Project.
  • Több dokumentum megnyitása és létrehozása ugyanazon ablak új lapjain, mint új ablakokban.
  • 50% -kal növeli a termelékenységet, és minden nap több száz kattintással csökkenti az egér kattintását!
officetab alja
Say something here...
symbols left.
You are guest
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    Fatos Gaxha · 24 days ago
    @kellytte Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

    With Sheets("Sheet1")
    If WorksheetFunction.CountA(.Range("A1:A4")) <> WorksheetFunction.CountA(.Range("B1:C4")) / 2 Then
    Cancel = True
    MsgBox "Please enter a values in columns B and C", vbCritical, "Error!"
    End If
    End With

    End Sub


    Just change the range from a to c, and from b to o and p
    hope it will help
  • To post as a guest, your comment is unpublished.
    Fatos Gaxha · 24 days ago
    @kellytte Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

    With Sheets("Sheet1")
    If WorksheetFunction.CountA(.Range("A1:A4")) <> WorksheetFunction.CountA(.Range("B1:C4")) / 2 Then
    Cancel = True
    MsgBox "Please enter a values in columns B and C", vbCritical, "Error!"
    End If
    End With

    End Sub


    Just change the range from a to c, and from b to o and p
    hope it will help
  • To post as a guest, your comment is unpublished.
    kellytte · 2 months ago
    @Aditya
    Note: In the VBA code, the "TEST" is the specific worksheet name, and the "A1" is the specific cell, and you can change them as you need.

    For example, your sheet is named as "Sheet1", and the specified cell is B2, you need to change the sheet name and cell address in the VBA code before running it
  • To post as a guest, your comment is unpublished.
    Aditya · 2 months ago
    This is not working, it states save cancelled but still ends up saving the workbook
  • To post as a guest, your comment is unpublished.
    kellytte · 7 months ago
    @Happy Hi Happy,
    Just replace the empty value “Sheets("TEST").Range("A1").Value = ""” to the specified text “Sheets("TEST").Range("A1").Value = "Please select"
    And the whole code will be changed as below:

    Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) If Application.Sheets("TEST").Range("A1").Value = "Please select" Then Cancel = True MsgBox "Save cancelled" End If End Sub


  • To post as a guest, your comment is unpublished.
    Happy · 7 months ago
    I tried above formula which works. May i know is there any formula can force user to fill in before they can save? As i set the pull down menu "Please select", "Yes" or "No" for them to select. But they always forgot to select that field and remain "Please select". If i add this VBA code only apply cell is blank. Much appreciate you can advise. Thank you
  • To post as a guest, your comment is unpublished.
    Happy · 7 months ago
    Hi, I tried above formula which works. May i know is there any formula can force user to fill in before they can save? As i set the pull down menu "Please select", "Yes" or "No" for them to select. But they always forgot to select that field and remain "Please select". If i add this VBA code only apply cell is blank. Much appreciate you can advise. Thank you
  • To post as a guest, your comment is unpublished.
    Am1n · 7 months ago
    Hi
    I have a VBA code that sorts and filters data from one excel table and save 48 different reports on my desktop. but based on those filters, some generated reports have only 1 row (headers) and no data. How can I add some VBA code to my file that prevents to save files that has just one row (header) and no data?
    Thank you
  • To post as a guest, your comment is unpublished.
    Amin · 7 months ago
    Hi
    I have a VBA code that sorts and filters data from one excel table and save 48 different reports on my desktop. but based on those filters, some generated reports have only 1 row (headers) and no data. How can I add some VBA code to my file that prevents to save files that has just one row (header) and no data?
    Thank you
  • To post as a guest, your comment is unpublished.
    Benjamin · 1 years ago
    good afternoon, I used the code above and it worked perfectly. my question is what should the code look like if I want to test on 2 cells? I am quite desperate. thanking you I advance for your assistance
  • To post as a guest, your comment is unpublished.
    kellytte · 1 years ago
    @Yzelle Hi Yzelle,
    Please remember to place below code into “ThisWorkbook” script window, and rename the worksheet name “Test” in the below code based on your condition.

    Dim xIRg As Range
    Dim xSRg As Range
    Dim xBol As Boolean
    Dim xInt As Integer
    Dim xStr As String
    If ActiveSheet.Name = "Test" Then
    Set xRg = Range("C:C")
    Set xRRg = Intersect(xRg.Worksheet.UsedRange, xRg)
    xBol = False
    On Error Resume Next
    For xInt = 1 To xRRg.Count
    Set xIRg = xRRg.Item(xInt)
    If xIRg.Value2 <> "" Then
    Set xSRg = Nothing
    If (Range("O" & xIRg.Row) = "") Or (Range("P" & xIRg.Row) = "") Then
    xBol = True
    Exit For
    End If
    End If
    Next
    If xBol Then
    Cancel = True
    MsgBox "Save cancelled"
    End If
    End If
    End Sub
  • To post as a guest, your comment is unpublished.
    Yzelle · 1 years ago
    I have a very big spreadsheet that contains a lot of info.
    Can someone please help me with a code to copy into VBA - I want it to be that if Cell C2-C1000+ have any info in them then cell O2-O1000+ and P2-P1000+ requires user input - however if a cell in Column C is empty then the cell in Column O & P can be empty as well. (for example) if cell C3 doesn't have any data input then cell O3-P3 can be empty.

    Thank you :)
  • To post as a guest, your comment is unpublished.
    kellytte · 1 years ago
    @Wkai Hi Wkai,
    Try this VBA code:
    (This VBA code will detect Range A2:E5 in the Sheet “Test”, and cancel saving if there are blank cells existing in the range.)

    Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    Dim xWSName As String
    Dim xRgAddress As String
    Dim xRg As Range
    Dim xWs As Worksheet
    Dim xFNRg As Range
    xWSName = "TEST"
    xRgAddress = "A2:E5"
    Set xWs = Application.ActiveWorkbook.Worksheets.Item(xWSName)
    Set xRg = xWs.Range(xRgAddress)
    Set xFNRg = Nothing
    On Error Resume Next
    Set xFNRg = xRg.SpecialCells(xlCellTypeBlanks, 23)
    If Not TypeName(xFNRg.count) = "Nothing" Then
    Cancel = True
    MsgBox "Save cancelled"
    End If
    End Sub
  • To post as a guest, your comment is unpublished.
    andrewgonzales048@gmail.com · 1 years ago
    This is really great. Do you know what I can do to make this work for a range of sheets and a number of cells? Also, these cells cannot always be the same, as there are sheets generated in this specific workbook which may not have the same cell needing to be filled each time. The cells will always be in the same column, just above the page border which is also generated. Thanks!
  • To post as a guest, your comment is unpublished.
    mhoferica@gmail.com · 1 years ago
    Hi, very useful. BUT there is a problem when I use it for files on the sharepoint. The changes are not saved but a new version is created that is displayed when reopening which is quite confusing. Is it possible to disable these new versions ?
  • To post as a guest, your comment is unpublished.
    Wkai · 2 years ago
    Hi i want to ask if it is from A2 to U2. what should i write?
  • To post as a guest, your comment is unpublished.
    kelly.extendoffice@gmail.com · 3 years ago
    @edusuro Hi Eduardo,
    What about typing a space in the specified cell to pretend to a blank cell? Please remind to remove the space in future!
  • To post as a guest, your comment is unpublished.
    edusuro · 3 years ago
    hi - this was super helpful... Just had one question, how do I save the file without a value in that field? As I try to save, the VBA code will pop the "Save Cancelled" message which is the intended response, however, need to save once without a value to create the form to be reused.

    Thanks!