Forhindre automatisk Dato Formatering Endringer

September 2  by Eliza

I et regneark Carol har en celle formatert til "Regnskap". Hvis noen tilfeldigvis kommer inn en dato (dd / mm / åå) i denne cellen, endrer Excel automatisk formatering av cellen for å vise datoen riktig. Men hvis hun prøver å legge inn et pengebeløp i denne cellen igjen, det vil ikke gå tilbake til "Regnskap" format; cellen forblir i datoformat. Dette er greit hvis brukeren ser feilen og korrigerer det, men mange ganger dette skjer i en mal med "standardtekst" tekst og malen er beskyttet uten tilgang til formatering celler. Carol lurer på om noen har noen ideer om hvorfor dette skjer og hvordan å rette det opp.

Hvis du ønsker en rask måte å hindre formater endring i enkle regneark, gjør du følgende:

  1. Vise Excel dialogboksen Alternativer. (I Excel 2007 klikker du på Office-knappen, og klikk deretter Alternativer for Excel. I Excel 2010 og Excel 2013 skjerm Fil-kategorien på båndet, og klikk deretter Alternativer.)
  2. På venstre side av dialogboksen klikker du på Avansert.
  3. Bla til bunnen av de avanserte innstillingene. (Se figur 1)

    Forhindre automatisk Dato Formatering Endringer

    Figur 1. De avanserte alternativer i Excel dialogboksen Alternativer.

  4. Kontroller at Alternativ formel Entry alternativet er valgt.
  5. Klikk på OK.

Dette bestemte alternativet gjør Excel til å evaluere (analysere) lagt inn informasjon på samme måte som Lotus 1-2-3 gjorde. Dette betyr at datoene er ikke lenger tolket som datoer, men som en formel. Dermed, hvis noen kommer inn 11-16-13 i en celle, så det blir tolket som "elleve minus seksten minus tretten" og vist i cellen som -18. Fordi det ikke ble tolket som en dato, så regnskapsloven formatet er igjen knyttet til cellen, som ønsket.

Det er ulemper til denne tilnærmingen, though. Fordi Excel senere analyserer noen oppføringer i henhold til Lotus regler, kan brukerne konkludere med at regnearket ikke fungerer ordentlig siden det ikke følger de samme reglene som andre Excel-regneark gjøre. Dette er grunnen til at jeg nevnte at denne tilnærmingen kan være akseptabelt for enkle regneark; du trenger å gjøre fastsetting hvis regnearket kvalifiserer.

Hvis du ikke vil endre hvordan parsing er gjort, kan den beste tilnærmingen være å legge til noen hendelsesbehandlinger til regnearket. For eksempel kan du inkludere en hendelseshåndterer som ser på hvor data ble skrevet inn og sørger for at eventuelle endringer i disse cellene beholde ønsket formatering.

Private Sub Worksheet_Change (ByVal Target As Range)
Dim rngToCheck Som Range
Satt rngToCheck = Range ("E2")
Hvis Intersect (Target, rngToCheck) Deretter
rngToCheck.NumberFormat = _
"_ ($ * #, ## 0,00 _); _ ($ * (#, ## 0,00); _ ($ *" "-" "?? _); _ (_)"
End If
End Sub

I dette eksempelet cellen du ønsker å beholde regnskapsloven formatet er E2, som er tilordnet rngToCheck variabel. Hvis du vil tvinge formatet på en annen celleområde, så bare endre tilordningen linje.

Hvis du ønsker litt mer fleksibilitet, så kan du bruke et annet sett av hendelsesbehandlinger. For eksempel, følgende eksempler bruker både endre og Endre hendelsene i regnearkobjekt. De resulterer i noe som ikke så mye tvinge et bestemt format, men det hindrer formatering av en celle blir endret fra hva det var før. Dermed beskytter denne tilnærmingen all formatering, ikke bare håndheve et regnskap format.

Dim nFormat As String

Private Sub Worksheet_Change (ByVal Target As Range)
Dim rngToCheck Som Range
Satt rngToCheck = Range ("E2")
Hvis Intersect (Target, rngToCheck) Deretter
rngToCheck.NumberFormat = nFormat
End If
End Sub

Private Sub Worksheet_SelectionChange (ByVal Target As Range)
nFormat = Target.NumberFormat
End Sub

De endre hendelseshåndterer branner først, sette den eksisterende format til nFormat variabel. Deretter Endre hendelseshåndterer branner og setter formatering tilbake til det opprinnelige.

En annen tilnærming du kan prøve er å bruke datavalidering. Denne tilnærmingen krever ingen makroer, og er derfor egnet hvis arbeidsboken vil bli brukt av personer som kan ha makroer deaktivert på deres system. Følg disse generelle trinnene:

  1. Velg cellen eller cellene som formatering du ønsker å håndheve.
  2. Vise kategorien Data om bånd.
  3. Klikk på datavalidering verktøy i Dataverktøy-gruppen. Excel viser datavalidering dialogboksen.
  4. Bruke Tillat nedtrekkslisten, velger du Tilpasset. (Se figur 2)

    Forhindre automatisk Dato Formatering Endringer

    Figur 2. datavalidering dialogboksen.

  5. I Formel-boksen skriver du inn følgende: = CELL ("format", B2) = "C2"
  6. Sette eventuelle andre datavalideringsinnstillinger ønsket.
  7. Klikk på OK.

Formelen (trinn 5) kontrollerer formatering av cellen og enten tillater eller forbyr innreise basert på at formatering. I formelen som sitert, er formatet C2 internnavnet for regnskaps format. Du kan enkelt endre kodene i formelen til et annet format, for eksempel ", 2", "K2", "C0", "C2", eller "C0-" avhengig av din preferanse. Den enkleste måten å finne ut hvilket format du skal bruke, er å formatere en celle, som ønsket, før du påfører datavalideringsregel. (For eksempel, la oss si at du bruker formatering til celle L13.) Deretter kan du bruke denne formelen i en annen celle for å se hvilket format Excel tror du har brukt:

= CELL ("formatere", L13)

ExcelTips er din kilde for kostnadseffektiv Microsoft Excel trening. Dette tipset (12729) gjelder for Microsoft Excel 2007, 2010, og 2013.