Jak zapobiec zapisywaniu, jeśli określona komórka jest pusta w programie Excel?
Na przykład zaprojektowałeś formularz w arkuszu i udostępniasz go współpracownikom. Masz nadzieję, że Twoi współpracownicy wypełnią swoje nazwiska w określonej komórce, aby wskazać, kto wszedł do tego formularza, w przeciwnym razie uniemożliwić im zapisanie formularza, jak możesz to zrobić? Tutaj przedstawię makro VBA, aby zapobiec zapisywaniu skoroszytu, jeśli określona komórka jest pusta w programie Excel.
Zapobiegaj zapisywaniu, jeśli określona komórka jest pusta w programie Excel
Aby zapobiec zapisywaniu bieżącego skoroszytu, jeśli określona komórka jest pusta w programie Excel, możesz łatwo zastosować następujące makro VBA.
Krok 1: Otwórz okno Microsoft Visual Basic for Applications, naciskając inny + F11 klucze w międzyczasie.
Krok 2: W Eksploratorze projektów rozwiń plik VBAProject (nazwa twojego skoroszytu.xlsm) i Obiekty Microsoft Excel, a następnie kliknij dwukrotnie plik Ten zeszyt. Zobacz zrzut ekranu po lewej:
Krok 3: W otwartym oknie ThisWorkbook wklej następujące makro VBA:
Makro VBA: Zapobiegaj zapisywaniu, jeśli określona komórka jest pusta
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
'Update by ExtendOffice 20220907
Dim xFileName As String
Dim xStr As String
Dim xStrWSH As String
Dim xWSh As Worksheet
Dim xWShs As Sheets
Dim xWSh1 As Worksheet
Dim xWB As Workbook
xStrWSH = "xHidWSH_LJY"
On Error Resume Next
Set xWB = Application.ActiveWorkbook
Set xWShs = xWB.Worksheets
Set xWSh = xWShs.Item(xStrWSH)
If xWSh Is Nothing Then
Set xWSh1 = xWShs.Add
xWSh1.Name = xStrWSH
xWSh1.Visible = xlSheetVeryHidden
Cancel = False
Else
If Trim(Application.Sheets("Sheet1").Range("A1").Value) = "" Then
Cancel = True
MsgBox "Save cancelled"
End If
End If
End Sub
Uwaga: 1. W 26. wierszu powyższego kodu VBA, „Arkusz1” to konkretna nazwa arkusza, a „A1”to konkretna komórka i możesz je zmienić w razie potrzeby.
2. Po wejściu do VBA w Ten zeszyt, należy najpierw zapisać skoroszyt. A następnie możesz wysłać plik z obsługą makr do innych.
Teraz, jeśli określona komórka jest pusta w bieżącym skoroszycie, po jej zapisaniu pojawi się okno dialogowe z ostrzeżeniem i informacją „Zapis anulowany". Zobacz następujący zrzut ekranu:
Powiązane artykuły
Jak sprawdzić lub znaleźć, czy komórka zawiera określony ciąg / tekst / słowo w programie Excel?
Jak skopiować wiersze, jeśli kolumna zawiera określony tekst / wartość w programie Excel?
Jak skopiować komórki, jeśli kolumna zawiera określoną wartość / tekst w programie Excel?
Najlepsze narzędzia biurowe
Zwiększ swoje umiejętności Excela dzięki Kutools for Excel i doświadcz wydajności jak nigdy dotąd. Kutools dla programu Excel oferuje ponad 300 zaawansowanych funkcji zwiększających produktywność i oszczędzających czas. Kliknij tutaj, aby uzyskać funkcję, której najbardziej potrzebujesz...
Karta Office wprowadza interfejs z zakładkami do pakietu Office i znacznie ułatwia pracę
- Włącz edycję i czytanie na kartach w programach Word, Excel, PowerPoint, Publisher, Access, Visio i Project.
- Otwieraj i twórz wiele dokumentów w nowych kartach tego samego okna, a nie w nowych oknach.
- Zwiększa produktywność o 50% i redukuje setki kliknięć myszką każdego dnia!