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

Sut i atal cynilo os yw cell benodol yn wag yn Excel?

Er enghraifft, gwnaethoch ddylunio ffurflen mewn taflen waith a'i rhannu gyda'ch cydweithwyr. Rydych chi'n gobeithio y bydd eich cydweithwyr yn llenwi eu henwau i'r gell benodol i nodi pwy wnaeth nodi'r ffurflen hon, fel arall eu hatal rhag achub y ffurflen, sut allech chi wneud? Yma, byddaf yn cyflwyno macro VBA i atal arbed llyfr gwaith os yw'r gell benodol yn wag yn Excel.

Tab Swyddfa Galluogi Golygu a Pori Tabbed yn y Swyddfa, a Gwneud Eich Gwaith yn Haws Orau ...
Mae Kutools for Excel yn Datrys y rhan fwyaf o'ch Problemau, ac yn Cynyddu Eich Cynhyrchedd 80%
  • Ailddefnyddio Unrhyw beth: Ychwanegwch y fformwlâu, siartiau ac unrhyw beth arall a ddefnyddir fwyaf cymhleth i'ch ffefrynnau, a'u hailddefnyddio'n gyflym yn y dyfodol.
  • Mwy nag 20 o nodweddion testun: Rhif Detholiad o Llinyn Testun; Tynnu neu Dynnu Rhan o Testunau; Trosi Rhifau ac Arian Cyfred yn Eiriau Saesneg.
  • Uno Offer: Llyfrau Gwaith a Thaflenni Lluosog yn Un; Uno Celloedd Lluosog / Rhesi / Colofnau Heb Golli Data; Uno Rhesi a Swm Dyblyg.
  • Hollti Offer: Rhannwch Ddata yn Daflenni Lluosog Yn Seiliedig ar Werth; Un Llyfr Gwaith i Ffeiliau Lluosog Excel, PDF neu CSV; Un Golofn i Golofnau Lluosog.
  • Gludo Sgipio Rhesi Cudd / Hidlo; Cyfrif A Swm yn ôl Lliw Cefndir; Anfon E-byst wedi'u Personoli at Dderbynwyr Lluosog mewn Swmp.
  • Hidlo Gwych: Creu cynlluniau hidlo datblygedig a'u cymhwyso i unrhyw daflenni; Trefnu yn yn ôl wythnos, dydd, amlder a mwy; Hidlo gan feiddgar, fformwlâu, sylw ...
  • Mwy na 300 o nodweddion pwerus; Yn gweithio gyda'r Swyddfa 2007-2019 a 365; Yn cefnogi pob iaith; Defnydd hawdd yn eich menter neu sefydliad.


swigen dde glas saethAtal cynilo os yw cell benodol yn wag yn Excel

Er mwyn atal rhag arbed y llyfr gwaith cyfredol os yw'r gell benodol yn wag yn Excel, gallwch gymhwyso'r macro VBA canlynol yn hawdd.

Cam 1: Agorwch ffenestr Microsoft Visual Basic for Applications gyda phwyso'r Alt + F11 allweddi yn y cyfamser.

Cam 2: Yn y Project Explorer, ehangwch y VBAProject (Enw eich llyfr gwaith.xlsm) ac Gwrthrychau Microsoft Excel, ac yna cliciwch ddwywaith ar y Llyfr Gwaith hwn. Gweler y sgrinlun ar y chwith:

Cam 3: Yn ffenestr agoriadol ThisWorkbook, pastiwch y macro VBA canlynol:

Macro VBA: Atal cynilo os yw cell benodol yn wag

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
Nodyn:
1. Yn y 26ain rhes o'r cod VBA uchod, y "Taflen 1" yw enw'r daflen waith benodol, a'r "A1"yw'r gell benodol, a gallwch eu newid yn ôl yr angen.
2. Ar ôl i chi fynd i mewn i'r VBA yn Llyfr Gwaith hwn, dylech arbed y llyfr gwaith yn gyntaf. Ac yna gallwch chi anfon y ffeil macro-alluogi i eraill.

Nawr os yw'r gell benodol yn wag yn y llyfr gwaith cyfredol, pan fyddwch chi'n ei chadw, mae blwch deialog rhybuddio yn dod allan ac yn dweud wrthych chi "Arbed wedi'i gansloGweler yr ergyd sgrin ganlynol:


swigen dde glas saethErthyglau Perthnasol


Yr Offer Cynhyrchedd Swyddfa Gorau

Mae Kutools for Excel yn Datrys y rhan fwyaf o'ch Problemau, ac yn Cynyddu Eich Cynhyrchedd 80%

  • Ailddefnyddio: Mewnosod yn gyflym fformwlâu cymhleth, siartiau ac unrhyw beth rydych chi wedi'i ddefnyddio o'r blaen; Amgryptio Celloedd gyda chyfrinair; Creu Rhestr Bostio ac anfon e-byst ...
  • Bar Fformiwla Gwych (golygu llinellau lluosog o destun a fformiwla yn hawdd); Cynllun Darllen (darllen a golygu nifer fawr o gelloedd yn hawdd); Gludo i'r Ystod Hidlo...
  • Uno Celloedd / Rhesi / Colofnau heb golli Data; Cynnwys Celloedd Hollt; Cyfuno Rhesi / Colofnau Dyblyg... Atal Celloedd Dyblyg; Cymharwch y Meysydd...
  • Dewiswch Dyblyg neu Unigryw Rhesi; Dewiswch Blank Rows (mae pob cell yn wag); Darganfyddiad Gwych a Darganfyddiad Niwlog mewn Llawer o Lyfrau Gwaith; Dewis ar Hap ...
  • Copi Union Celloedd Lluosog heb newid cyfeirnod fformiwla; Auto Creu Cyfeiriadau i Daflenni Lluosog; Mewnosod Bwledi, Blychau Gwirio a mwy ...
  • Testun Detholiad, Ychwanegu Testun, Tynnu yn ôl Swydd, Tynnwch y Gofod; Creu ac Argraffu Subtotals Paging; Trosi rhwng Cynnwys a Sylwadau Celloedd...
  • Hidlo Super (arbed a chymhwyso cynlluniau hidlo i ddalenni eraill); Trefnu Uwch yn ôl mis / wythnos / dydd, amlder a mwy; Hidlo Arbennig gan feiddgar, italig ...
  • Cyfuno Llyfrau Gwaith a Thaflenni Gwaith; Uno Tablau yn seiliedig ar golofnau allweddol; Rhannwch Ddata yn Daflenni Lluosog; Trosi Swp xls, xlsx a PDF...
  • Mwy na 300 o nodweddion pwerus. Yn cefnogi Swyddfa / Excel 2007-2019 a 365. Yn cefnogi pob iaith. Defnydd hawdd yn eich menter neu sefydliad. Nodweddion llawn treial am ddim 30 diwrnod. Gwarant arian yn ôl 60 diwrnod.
tab kte 201905

Mae Tab Office yn Dod â rhyngwyneb Tabbed i'r Swyddfa, a Gwneud Eich Gwaith yn Haws o lawer

  • Galluogi golygu a darllen tabbed yn Word, Excel, PowerPoint, Cyhoeddwr, Mynediad, Visio a Phrosiect.
  • Agor a chreu dogfennau lluosog mewn tabiau newydd o'r un ffenestr, yn hytrach nag mewn ffenestri newydd.
  • Yn cynyddu eich cynhyrchiant 50%, ac yn lleihau cannoedd o gliciau llygoden i chi bob dydd!
gwaelod officetab
sylwadau (26)
Dim sgôr eto. Byddwch y cyntaf i sgorio!
Lleihawyd y sylw hwn gan y safonwr ar y wefan
helo - roedd hyn yn ddefnyddiol iawn ... Dim ond wedi cael un cwestiwn, sut mae cadw'r ffeil heb werth yn y maes hwnnw? Wrth i mi geisio arbed, bydd y cod VBA yn popio'r neges "Cadw Wedi'i Ganslo" sef yr ymateb arfaethedig, fodd bynnag, mae angen arbed unwaith heb werth i greu'r ffurflen i'w hailddefnyddio.

Diolch!
Lleihawyd y sylw hwn gan y safonwr ar y wefan
Helo Eduardo,
Beth am deipio bwlch yn y gell benodol i esgus bod yn gell wag? Cofiwch ddileu'r gofod yn y dyfodol!
Lleihawyd y sylw hwn gan y safonwr ar y wefan
Helo Eduardo, a oeddech chi'n gallu cael ateb i'ch cwestiwn? Rwyf wedi dod ar draws yr un mater ac mae teipio mewn bwlch yn caniatáu i'r ffurflen gael ei chadw. A oes unrhyw un yn gwybod am ateb ar gyfer hyn?
Lleihawyd y sylw hwn gan y safonwr ar y wefan
Hi 'na,

Rhowch gynnig ar y cod VBA isod:
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

    xFileName = ActiveWorkbook.Name
    xStr = Left(xFileName, InStrRev(xFileName, ".") - 1)
    ActiveWorkbook.SaveCopyAs "C:\Users\Amanda\Desktop\" & Replace(xFileName, xStr, xStr & " - copy")
    Cancel = True
    MsgBox "Save cancelled"

  End If

End If

End Sub

Nodyn:
1. Newidiwch y pyt Sheet1 ac A1 yn y 26ed rhes i enw'r ddalen wirioneddol a'r gell.
2. Newidiwch y pyt C: \ Defnyddwyr \ Amanda \ Penbwrdd \ yn y 30fed rhes gyda'r llwybr gwirioneddol lle rydych chi am gadw'r copi o'r ffeil.
3. Ar ôl i chi fynd i mewn i'r VBA yn Llyfr Gwaith hwn, dylech gadw'r llyfr gwaith yn gyntaf. Ar ôl hynny, pan fyddwch chi'n ei arbed eto, bydd y llyfr gwaith yn cael ei gopïo, fel y gallwch ei anfon at eraill.

Amanda
Lleihawyd y sylw hwn gan y safonwr ar y wefan
Helo Amanda, ni weithiodd :(. Rhoddodd gamgymeriad i mi, efallai fy mod yn gwneud rhywbeth o'i le. Dim ond copi o'r ffurflen (gyda meysydd gwag) yr wyf am gadw copi o'r ffurflen (gyda meysydd gwag) fel bod y defnyddiwr yn gallu agor a llenwi. Ble mae'r macro yn eu hysgogi ac yn eu hatal rhag cadw'r ffeil os yw'n wag. A fyddech cystal â chymryd golwg?
Lleihawyd y sylw hwn gan y safonwr ar y wefan
Hi 'na,

Gweler y sylw uchod, rwyf wedi diweddaru'r VBA. Dylai'r cod weithio'n berffaith ar gyfer eich achos.

Amanda
Lleihawyd y sylw hwn gan y safonwr ar y wefan
Yn gweithio ond nawr nid yw'r ffeil sy'n cael ei chopïo yn gweithio fel ffurflen. 'I jyst yn annog arbed ganslo. Mae angen ffurflen wag yn bennaf arnaf sy'n atal defnyddwyr rhag cynilo nes bod meysydd penodol wedi'u llenwi. Mae pob maes wedi'i lenwi yn fy nhempled presennol, ond mae angen ffeil Defnyddiwr wag arnaf. Mae'n ddrwg gennyf efallai nad wyf wedi egluro'n gywir.
Lleihawyd y sylw hwn gan y safonwr ar y wefan
Helo, hoffwn ofyn a yw o A2 i U2. beth ddylwn i ysgrifennu?
Lleihawyd y sylw hwn gan y safonwr ar y wefan
Helo Wkai,
Rhowch gynnig ar y cod VBA hwn:
(Bydd y cod VBA hwn yn canfod Ystod A2: E5 yn y Daflen “Prawf”, ac yn canslo arbed os oes celloedd gwag yn bodoli yn yr ystod.)

Is Gweithlyfr Preifat_Cyn Arbed(ByVal SaveAsUI Fel Boole, Canslo Fel Boole)
Dim xWSName Fel Llinyn
Dim xRgAddress Fel Llinyn
Dim xRg Fel Ystod
Dim xWs Fel Taflen Waith
Dim xFNRg Fel Ystod
xWSName = "PRAWF"
xRgAddress = "A2:E5"
Gosod xWs = Application.ActiveWorkbook.Worksheets.Item(xWSName)
Gosod xRg = xWs.Range(xRgAddress)
Gosod xFNRg = Dim byd
Ar Ail-ddechrau Gwall Nesaf
Gosod xFNRg = xRg.SpecialCells(xlCellTypeBlanks, 23)
If Not TypeName(xFNRg.count) = "Dim byd" Yna
Diddymu = Gwir
MsgBox "Cadw wedi'i ganslo"
Gorffennwch Os
Is-End
Lleihawyd y sylw hwn gan y safonwr ar y wefan
Helo, defnyddiol iawn. OND mae problem pan fyddaf yn ei ddefnyddio ar gyfer ffeiliau ar y sharepoint. Nid yw'r newidiadau yn cael eu cadw ond mae fersiwn newydd yn cael ei greu sy'n cael ei arddangos wrth ailagor sy'n eithaf dryslyd. A yw'n bosibl analluogi'r fersiynau newydd hyn?
Lleihawyd y sylw hwn gan y safonwr ar y wefan
Mae hyn yn wirioneddol wych. A wyddoch beth y gallaf ei wneud i wneud i hyn weithio ar gyfer ystod o ddalennau a nifer o gelloedd? Hefyd, ni all y celloedd hyn fod yr un peth bob amser, gan fod dalennau wedi'u cynhyrchu yn y llyfr gwaith penodol hwn nad oes angen llenwi'r un gell bob tro. Bydd y celloedd bob amser yn yr un golofn, ychydig uwchben ffin y dudalen a gynhyrchir hefyd. Diolch!
Lleihawyd y sylw hwn gan y safonwr ar y wefan
Mae gen i daenlen fawr iawn sy'n cynnwys llawer o wybodaeth.
A all rhywun fy helpu os gwelwch yn dda gyda chod i'w gopïo i VBA - rwyf am iddo fod, os oes gan Cell C2-C1000+ unrhyw wybodaeth ynddynt yna mae cell O2-O1000+ a P2-P1000+ angen mewnbwn defnyddiwr - fodd bynnag os yw cell yng Ngholofn C yn yn wag yna gall y gell yng Ngholofn O & P fod yn wag hefyd. (er enghraifft) os nad oes gan gell C3 unrhyw fewnbwn data yna gall cell O3-P3 fod yn wag.

Diolch :)
Lleihawyd y sylw hwn gan y safonwr ar y wefan
Helo Yzelle,
Cofiwch osod y cod isod yn ffenestr sgript “ThisWorkbook”, ac ailenwi enw'r daflen waith “Test” yn y cod isod yn seiliedig ar eich cyflwr.

Dim xIRg Fel Ystod
Dim xSRg Fel Ystod
Dim xBol Fel Boole
Dim xInt Fel Cyfanrif
Dim xStr Fel Llinyn
If ActiveSheet.Name = "Prawf" Yna
Gosod xRg = Ystod ("C: C")
Gosod xRRg = Croestorri(xRg.Worksheet.UsedRange, xRg)
xBol = Gau
Ar Ail-ddechrau Gwall Nesaf
Ar gyfer xInt = 1 I xRRg.Count
Gosod xIRg = xRRg.Item(xInt)
Os xIRg.Value2 <> "" Yna
Gosod xSRg = Dim byd
Os (Ystod ("O" & xIRg.Row) = "") Neu (Ystod ("P" & xIRg.Row) = "") Yna
xBol = Gwir
Allanfa Ar Gyfer
Gorffennwch Os
Gorffennwch Os
Digwyddiadau
Os xBol Yna
Diddymu = Gwir
MsgBox "Cadw wedi'i ganslo"
Gorffennwch Os
Gorffennwch Os
Is-End
Lleihawyd y sylw hwn gan y safonwr ar y wefan
Is Gweithlyfr Preifat_Cyn Arbed(ByVal SaveAsUI Fel Boole, Canslo Fel Boole)

Gyda Taflenni ("Taflen 1")
If WorksheetFunction.CountA(.Range("A1:A4")) <> WorksheetFunction.CountA(.Range("B1:C4")) / 2 Yna
Diddymu = Gwir
msgstr "Rhowch werthoedd yng ngholofnau B a C", vbCritical, "Gwall!"
Gorffennwch Os
Diwedd Gyda

Is-End

Dim ond newid yr ystod o a i c, ac o b i o a phope bydd yn helpu
Lleihawyd y sylw hwn gan y safonwr ar y wefan
A oes gennych ffordd y gellir codio hwn fel bod angen i naill ai B neu C gael ei boblogi ond nad yw'n ofynnol i boblogi'r ddau?
Lleihawyd y sylw hwn gan y safonwr ar y wefan
Is Gweithlyfr Preifat_Cyn Arbed(ByVal SaveAsUI Fel Boole, Canslo Fel Boole)

Gyda Taflenni ("Taflen 1")
If WorksheetFunction.CountA(.Range("A1:A4")) <> WorksheetFunction.CountA(.Range("B1:C4")) / 2 Yna
Diddymu = Gwir
msgstr "Rhowch werthoedd yng ngholofnau B a C", vbCritical, "Gwall!"
Gorffennwch Os
Diwedd Gyda

Is-End


Newidiwch yr amrediad o a i c, ac o b i o a p
gobeithio y bydd yn helpu
Lleihawyd y sylw hwn gan y safonwr ar y wefan
prynhawn da, defnyddiais y cod uchod ac fe weithiodd yn berffaith. fy nghwestiwn yw sut olwg ddylai fod ar y cod os ydw i am brofi 2 gell? Yr wyf yn eitha enbyd. diolch i chi, rydw i'n symud ymlaen am eich cymorth
Lleihawyd y sylw hwn gan y safonwr ar y wefan
Mae gan HiI god VBA sy'n didoli a hidlo data o un tabl excel ac yn arbed 48 o adroddiadau gwahanol ar fy n ben-desg. ond yn seiliedig ar y hidlwyr hynny, dim ond 1 rhes (penawdau) sydd gan rai adroddiadau a gynhyrchir a dim data. Sut alla i ychwanegu rhywfaint o god VBA at fy ffeil sy'n atal cadw ffeiliau sydd ag un rhes yn unig (pennawd) a dim data? Diolch
Lleihawyd y sylw hwn gan y safonwr ar y wefan
Hi
Mae gen i god VBA sy'n didoli a hidlo data o un tabl excel ac yn arbed 48 o adroddiadau gwahanol ar fy n ben-desg. ond yn seiliedig ar y hidlwyr hynny, dim ond 1 rhes (penawdau) sydd gan rai adroddiadau a gynhyrchir a dim data. Sut alla i ychwanegu rhywfaint o god VBA at fy ffeil sy'n atal arbed ffeiliau sydd â dim ond un rhes (pennawd) a dim data?
Diolch yn fawr
Lleihawyd y sylw hwn gan y safonwr ar y wefan
Helo, ceisiais uchod fformiwla sy'n gweithio. A gaf i wybod a oes unrhyw fformiwla a all orfodi defnyddiwr i'w llenwi cyn y gallant arbed? Wrth i mi osod y ddewislen tynnu i lawr "Dewiswch", "Ie" neu "Na" iddyn nhw ei ddewis. Ond maent bob amser yn anghofio dewis y maes hwnnw ac aros yn "Dewiswch". Os byddaf yn ychwanegu'r cod VBA hwn dim ond cymhwyso'r gell sy'n wag. Gwerthfawrogi'n fawr y gallwch chi roi cyngor. Diolch
Lleihawyd y sylw hwn gan y safonwr ar y wefan
Ceisiais uchod fformiwla sy'n gweithio. A gaf i wybod a oes unrhyw fformiwla a all orfodi defnyddiwr i'w llenwi cyn y gallant arbed? Wrth i mi osod y ddewislen tynnu i lawr "Dewiswch", "Ie" neu "Na" iddyn nhw ei ddewis. Ond maent bob amser yn anghofio dewis y maes hwnnw ac aros yn "Dewiswch". Os byddaf yn ychwanegu'r cod VBA hwn dim ond cymhwyso'r gell sy'n wag. Gwerthfawrogi'n fawr y gallwch chi roi cyngor. Diolch
Lleihawyd y sylw hwn gan y safonwr ar y wefan
Helo Hapus,
Dim ond disodli'r gwerth gwag “Taflenni("PRAWF").Range("A1").Value=""” i'r testun penodedig “Sheets("PRAWF").Range("A1").Value = "Dewiswch"“A bydd y cod cyfan yn cael ei newid fel isod:
Is Gweithlyfr Preifat_Cyn Arbed(ByVal SaveAsUI Fel Boole, Canslo Fel Boole)
If Application.Sheets("TEST").Range("A1").Value = "Dewiswch" Yna
Diddymu = Gwir
MsgBox "Cadw wedi'i ganslo"
Gorffennwch Os
Is-End

Lleihawyd y sylw hwn gan y safonwr ar y wefan
Nid yw hyn yn gweithio, mae'n nodi bod arbed wedi'i ganslo ond yn dal i fod yn arbed y llyfr gwaith
Lleihawyd y sylw hwn gan y safonwr ar y wefan
Nodyn: Yn y cod VBA, y "TEST" yw enw'r daflen waith benodol, a'r "A1" yw'r gell benodol, a gallwch chi eu newid yn ôl yr angen.

Er enghraifft, enwir eich dalen fel "Taflen1", a'r gell benodedig yw B2, mae angen ichi newid enw'r ddalen a chyfeiriad y gell yn y cod VBA cyn ei rhedeg
Lleihawyd y sylw hwn gan y safonwr ar y wefan
Ciao,
io avrei bisogno di impostare una macro simile a quella di Eduardo. Yn arbennig, y tablau dyledus:
'- tabella prima A18:P28
'- eila tabella A33:P41.
Vorrei impedire che l'utente salvi il ffeil se ha compilato la cella A18 e le altre attigue (B18:P18) le ha lasciate vuote oppure se ha compilato la cella A33 e ha lasciato vuole le attigue (B33:P33). In questo caso, come dovrei impoare la macro? Grazie in anticipo a chi risponderà!
Lleihawyd y sylw hwn gan y safonwr ar y wefan
Hi 'na,

A ydych yn golygu eich bod am atal rhag cadw'r ffeil os caiff A18 ei llenwi tra bod B18: P18 yn wag? Rydych chi hefyd eisiau atal rhag cynilo os yw A33 wedi'i llenwi tra bod B33: P33 yn wag?
A ydych am atal rhag cynilo pan fydd y ddau faen prawf yn cael eu bodloni, neu pan fydd y naill neu'r llall o'r meini prawf yn cael eu bodloni?
Hefyd, defnyddiwch Saesneg os gwelwch yn dda. Diolch ymlaen llaw.

Amanda
Nid oes unrhyw sylwadau wedi'u postio yma eto
Gadewch eich sylwadau
Postio fel Gwestai
×
Graddiwch y swydd hon:
0   Cymeriadau
Lleoliadau a Awgrymir