Skaitļu formatēšana programmā Excel VBA

Skaitļu formatēšana programmā Excel VBA

Skaitļi ir pieejami visu veidu formātos Excel darblapās. Iespējams, jūs jau esat iepazinies ar Excel uznirstošo logu, lai izmantotu dažādus ciparu formātus:

Skaitļu formatēšana atvieglo skaitļu lasīšanu un izpratni. Šūnās ievadīto skaitļu Excel noklusējuma iestatījums ir “Vispārīgs” formāts, kas nozīmē, ka numurs tiek parādīts tieši tā, kā to ierakstījāt.

Piemēram, ja ievadāt apaļu skaitli, piem. 4238, tas tiks parādīts kā 4238 bez komata vai tūkstošiem atdalītāju. Decimālskaitlis, piemēram, 9325,89, tiks parādīts kopā ar decimāldaļu un aiz komata. Tas nozīmē, ka tas nesakritīs kolonnā ar apaļajiem skaitļiem un izskatīsies ārkārtīgi netīrs.

Turklāt, nerādot tūkstošiem atdalītāju, ir grūti redzēt, cik liels skaitlis patiesībā ir, neskaitot atsevišķos ciparus. Vai tas ir miljonos vai desmitos miljonu?

No lietotāja viedokļa skatoties uz leju ciparu kolonnā, tas apgrūtina lasīšanu un salīdzināšanu.

VBA jums ir pieejams tieši tāds pats formātu klāsts, kāds ir Excel priekšgalā. Tas attiecas ne tikai uz ievadīto vērtību darblapas šūnā, bet arī uz tādām lietām kā ziņojumu lodziņi, UserForm vadīklas, diagrammas un diagrammas, kā arī Excel statusa josla darblapas apakšējā kreisajā stūrī.

Formatēšanas funkcija ir ārkārtīgi noderīga funkcija VBA prezentācijas ziņā, taču tā ir arī ļoti sarežģīta, ņemot vērā piedāvāto elastību skaitļu attēlošanas ziņā.

Kā izmantot formāta funkciju VBA

Ja tiek parādīts ziņojumu lodziņš, funkciju Formatēt var izmantot tieši:

1 MsgBox formāts (1234567.89, "#, ## 0.00")

Tas parādīs lielu skaitu, izmantojot komatus, lai atdalītu tūkstošus un parādītu 2 zīmes aiz komata. Rezultāts būs 1 234 567,89. Nulles jaukšanas vietā nodrošina, ka decimāldaļas tiks rādītas kā 00 veselos skaitļos un ka skaitlim, kas ir mazāks par 1, ir sākuma nulle

Hashtag simbols (#) apzīmē ciparu vietturis, kas parāda ciparu, ja tas ir pieejams šajā pozīcijā, vai arī neko.

Varat arī izmantot formāta funkciju, lai adresētu atsevišķu šūnu, vai šūnu diapazonu, lai mainītu formātu:

1 Izklājlapas ("Sheet1"). Diapazons ("A1: A10"). NumberFormat = "#, ## 0.00"

Šis kods iestatīs šūnu diapazonu (no A1 līdz A10) uz pielāgotu formātu, kas atdala tūkstošus ar komatiem un parāda 2 zīmes aiz komata.

Pārbaudot šūnu formātu Excel priekšgalā, jūs atradīsit, ka ir izveidots jauns pielāgots formāts.

Varat arī formatēt ciparus Excel statusa joslā, kas atrodas Excel loga apakšējā kreisajā stūrī:

1 Application.StatusBar = Formāts (1234567.89, "#, ## 0.00")

Jūs to notīrāt no statusa joslas, izmantojot:

1 Application.StatusBar = ""

Formāta virknes izveide

Šajā piemērā pēc katra numura tiks pievienots teksts “Kopējais pārdošanas apjoms”, kā arī tūkstošiem atdalītāju

1 Izklājlapas ("Sheet1"). Diapazons ("A1: A6"). NumberFormat = "#, ## 0.00" "Kopējais pārdošanas apjoms" ""

Jūsu skaitļi izskatīsies šādi:

Ņemiet vērā, ka šūnai A6 ir “SUM” formula, un tajā tiks iekļauts teksts “Kopējais pārdošanas apjoms”, neprasot formatējumu. Ja tiek lietots formatējums, kā norādīts iepriekš minētajā kodā, šūnā A6 netiks ievietots papildu “Kopējais pārdošanas” gadījums

Lai gan šūnās tagad tiek attēlotas burtciparu rakstzīmes, skaitļi joprojām ir skaitliskā formā. Formula “SUM” joprojām darbojas, jo fonā tiek izmantota skaitliskā vērtība, nevis skaitļa formatēšana.

Komats formāta virknē nodrošina tūkstošiem atdalītāju. Ņemiet vērā, ka virknē tas jāievada tikai vienu reizi. Ja skaitlis sasniedz miljonus vai miljardus, tas joprojām sadalīs ciparus grupās pa 3

Nulle formāta virknē (0) ir ciparu vietturis. Tas parāda ciparu, ja tāds ir, vai nulli. Tā pozicionēšana ir ļoti svarīga, lai nodrošinātu vienveidību ar formatējumu

Formāta virknē jauktās rakstzīmes (#) neko neparādīs, ja nav ciparu. Tomēr, ja ir skaitlis, piemēram, 0,8 (visi cipari aiz komata), mēs vēlamies, lai tas tiktu rādīts kā 0,80, lai tas sakristu ar citiem skaitļiem.

Izmantojot formāta virknē vienu nulli pa kreisi no komata un divas nulles pa labi no komata, tas dos vajadzīgo rezultātu (0,80).

Ja pa labi no komata būtu tikai viena nulle, tad rezultāts būtu ‘0,8’ un viss tiktu parādīts līdz vienai zīmei aiz komata.

Formatēšanas virknes izmantošana izlīdzināšanai

Mēs, iespējams, vēlēsimies, lai visi decimāldaļskaitļi diapazonā būtu izlīdzināti pēc to zīmēm aiz komata, lai visi cipari aiz komata būtu tieši viens zem otra, lai arī cik daudz decimāldaļu ir uz katra skaitļa.

Lai to izdarītu, formāta virknē varat izmantot jautājuma zīmi (?). “?” Norāda, ka tiek parādīts numurs, ja tas ir pieejams, vai atstarpe

1 Izklājlapas ("Sheet1"). Diapazons ("A1: A6"). NumberFormat = "#, ## 0.00 ??"

Tas parādīs jūsu numurus šādi:

Visi cipari aiz komata tagad atrodas viens zem otra. Šūnai A5 ir trīs cipari aiz komata, un tas izlīdzinājumu izmestu normāli, taču, izmantojot rakstzīmi “?”, Viss tiek izlīdzināts perfekti.

Burtisku rakstzīmju izmantošana formāta virknē

Formāta virknei varat pievienot jebkuru burtisku rakstzīmi, ievadot to ar slīpsvītru (\).

Pieņemsim, ka saviem skaitļiem vēlaties parādīt noteiktu valūtas rādītāju, kas nav balstīts uz jūsu lokalizāciju. Problēma ir tāda, ka, ja izmantojat valūtas indikatoru, programma Excel automātiski atsaucas uz jūsu vietējo un maina to uz lokalizāciju, kas ir iestatīta Windows vadības panelī. Tas var ietekmēt, ja jūsu Excel lietojumprogramma tiek izplatīta citās valstīs un vēlaties nodrošināt, lai neatkarīgi no atrašanās vietas valūtas indikators vienmēr būtu vienāds.

Varat arī norādīt, ka skaitļi ir miljonos šajā piemērā:

1 Izklājlapas ("Sheet1"). Diapazons ("A1: A6"). NumberFormat = "\ $#, ## 0.00 \ m"

Tādējādi jūsu darblapā tiks iegūti šādi rezultāti:

Izmantojot slīpsvītru burtisku rakstzīmju parādīšanai, jums nav jāizmanto slīpsvītra katrai atsevišķai rakstzīmei virknē. Tu vari izmantot:

1 Izklājlapas ("Sheet1"). Diapazons ("A1: A6"). NumberFormat = "\ $#, ## 0.00 \ mill"

Pēc katra formatētā diapazona skaitļa tiks parādīts “dzirnavas”.

Lielāko daļu rakstzīmju varat izmantot kā burtus, bet ne rezervētas rakstzīmes, piemēram, 0, #,?

Komatu izmantošana formāta virknē

Mēs jau redzējām, ka ar komatiem var izveidot tūkstošiem atdalītāju lieliem skaitļiem, taču tos var izmantot arī citā veidā.

Izmantojot tos formāta virknes skaitliskās daļas beigās, viņi darbojas kā tūkstošiem mērogotāju. Citiem vārdiem sakot, katru reizi, kad ir komats, viņi katru skaitli dalīs ar 1000.

Datu piemērā mēs to rādām ar rādītāju, ka tie ir miljonos. Ievietojot vienu komatu formāta virknē, mēs varam parādīt šos skaitļus dalot ar 1000.

1 Izklājlapas ("Sheet1"). Diapazons ("A1: A6"). NumberFormat = "\ $#, ## 0.00, \ m"

Tas parādīs skaitļus, kas dalīti ar 1000, lai gan sākotnējais skaitlis šūnā joprojām būs fonā.

Ja formāta virknē ievietojat divus komatus, skaitļi tiks dalīti ar miljonu

1 Izklājlapas ("Sheet1"). Diapazons ("A1: A6"). NumberFormat = "\ $#, ## 0.00 ,, \ m"

Tas būs rezultāts, izmantojot tikai vienu komatu (daliet ar 1000):

Nosacītas formatēšanas izveide formāta virknē

Jūs varat iestatīt nosacītu formatējumu Excel priekšgalā, taču varat to darīt arī savā VBA kodā, kas nozīmē, ka varat veikt manipulācijas ar formāta virkni, lai veiktu izmaiņas.

Formāta virknē varat izmantot līdz četrām sadaļām. Katra sadaļa ir norobežota ar semikolu (;). Četras sadaļas atbilst pozitīvai, negatīvai, nullei un tekstam

1 Diapazons ("A1: A7"). NumberFormat = "#, ## 0.00; [Red]-#, ## 0.00; [Green]#, ## 0.00; [Blue]"

Šajā piemērā mēs izmantojam vienas un tās pašas hash, komatu un nulles rakstzīmes, lai sniegtu tūkstošus atdalītāju un divus ciparus aiz komata, taču tagad katram vērtību veidam ir dažādas sadaļas.

Pirmā sadaļa ir paredzēta pozitīviem skaitļiem un formāta ziņā neatšķiras no tā, ko mēs jau esam redzējuši iepriekš.

Otrā negatīvo skaitļu sadaļa ievieš krāsu (sarkanu), kas tiek turēta kvadrātiekavās. Formāts ir tāds pats kā pozitīviem skaitļiem, izņemot to, ka priekšā ir pievienota mīnusa zīme (-).

Trešajā sadaļā nulles skaitļiem kvadrātiekavās tiek izmantota krāsa (zaļa) ar ciparu virkni, kas ir tāda pati kā pozitīviem skaitļiem.

Pēdējā sadaļa ir paredzēta teksta vērtībām, un tam ir nepieciešama tikai krāsa (zila) kvadrātiekavās

Šis ir šīs formāta virknes izmantošanas rezultāts:

Jūs varat iet tālāk ar nosacījumiem formāta virknē. Pieņemsim, ka katru pozitīvo skaitli, kas pārsniedz 10 000, vēlaties parādīt kā zaļu, bet katru otro skaitli - sarkanu, varat izmantot šo formāta virkni:

1 Diapazons ("A1: A7"). NumberFormat = "[> = 10000] [Green]#, ## 0.00; [<10000] [Red]#, ## 0.00"

Šī formāta virkne ietver kvadrātiekavās iestatītos nosacījumus> = 10000, lai zaļā krāsa tiktu izmantota tikai tad, ja skaitlis ir lielāks vai vienāds ar 10000

Šis ir rezultāts:

Frakciju izmantošana virkņu formatēšanā

Frakcijas izklājlapās bieži neizmanto, jo tās parasti ir līdzvērtīgas decimāldaļām, kuras ir pazīstamas ikvienam.

Tomēr dažreiz tie kalpo kādam mērķim. Šajā piemērā tiks parādīti dolāri un centi:

1 Diapazons ("A1: A7"). NumberFormat = "#, ## 0" "dolāri un" "00/100" "centi" ""

Tāds būs rezultāts:

Atcerieties, ka, neskatoties uz to, ka skaitļi tiek parādīti kā teksts, tie joprojām ir fonā kā skaitļi, un tajos joprojām var izmantot visas Excel formulas.

Datuma un laika formāti

Datumi patiesībā ir skaitļi, un tajos var izmantot formātus tāpat kā skaitļiem. Ja datumu formatējat kā ciparu skaitli, pa kreisi no komata redzēsit lielu skaitli un vairākus ciparus aiz komata. Skaitlis pa kreisi no komata parāda dienu skaitu, kas sākas 1900. gada 1. janvārī, un decimāldaļas norāda laiku, kas balstīts uz 24 stundām

1 MsgBox formāts (tagad (), "dd-mmm-gggg")

Tādējādi pašreizējais datums tiks formatēts, lai parādītu '08-jūlijs-2020 '. Izmantojot mēnesi “mmm”, tiek parādītas mēneša nosaukuma pirmās trīs rakstzīmes. Ja vēlaties pilnu mēneša nosaukumu, izmantojiet “mmmm”

Formāta virknē varat iekļaut laikus:

1 MsgBox formāts (tagad (), "dd-mmm-gggg hh: mm AM/PM")

Tiks parādīts “08-08-2020 01:25 PM”

“Hh: mm” apzīmē stundas un minūtes, un AM/PM izmanto 12 stundu pulksteni, nevis 24 stundu pulksteni.

Formāta virknē varat iekļaut teksta rakstzīmes:

1 MsgBox formāts (tagad (), "dd-mmm-gggg hh: mm AM/PM" "šodien" "")

Tiks parādīts “08-08-2020 01:25 PM šodien”

Varat arī izmantot burtiskas rakstzīmes, izmantojot slīpsvītru priekšā tāpat kā ciparu formāta virknēm.

Iepriekš definēti formāti

Programmā Excel ir vairāki iebūvēti formāti skaitļiem un datumiem, kurus varat izmantot savā kodā. Tie galvenokārt atspoguļo numura formatēšanas priekšgalā pieejamo, lai gan daži no tiem pārsniedz to, kas parasti ir pieejams uznirstošajā logā. Turklāt jums nav elastības attiecībā uz cipariem aiz komata vai to, vai tiek izmantoti tūkstošiem atdalītāju.

Vispārējais numurs

Šis formāts parādīs numuru tieši tādu, kāds tas ir

1 MsgBox formāts (1234567.89, "Vispārējais numurs")

Rezultāts būs 1234567,89

Valūta

1 MsgBox formāts (1234567.894, "Valūta")

Šis formāts skaitļa priekšā pievienos valūtas simbolu, piem. $, £ atkarībā no jūsu lokalizācijas, taču tas arī formatēs skaitli līdz 2 zīmēm aiz komata un atdalīs tūkstošus ar komatiem.

Rezultāts būs USD 1 234 567,89

Fiksēts

1 MsgBox formāts (1234567.894, "Fiksēts")

Šis formāts parāda vismaz vienu ciparu pa kreisi, bet tikai divus ciparus pa labi no komata.

Rezultāts būs 1234567,89

Standarta

1 MsgBox formāts (1234567.894, "Standarta")

Tas parāda skaitli ar tūkstošiem atdalītāju, bet tikai līdz divām zīmēm aiz komata.

Rezultāts būs 1 234 567,89

Procenti

1 MsgBox formāts (1234567.894, "procenti")

Skaitli reizina ar 100, un skaitļa beigās pievieno procentuālo simbolu (%). Formāts tiek parādīts līdz 2 zīmēm aiz komata

Rezultāts būs 123456789,40%

Zinātnisks

1 MsgBox formāts (1234567.894, "Zinātniskais")

Tas pārvērš skaitli eksponenciālā formātā

Rezultāts būs 1.23E+06

Jā nē

1 MsgBox formāts (1234567.894, "Jā/Nē")

Ja skaitlis ir nulle, tiek parādīts “Nē”, pretējā gadījumā tiek parādīts “Jā”

Rezultāts būs “Jā”

Patiess/nepatiess

1 MsgBox formāts (1234567.894, "Patiess/nepatiess")

Ja skaitlis ir nulle, tiek parādīts “False”, pretējā gadījumā tiek parādīts “True”

Rezultāts būs “patiess”

Ieslēgts Izslēgts

1 MsgBox formāts (1234567.894, "Ieslēgts/izslēgts")

Ja skaitlis ir nulle, tiek parādīts “Izslēgts”, pretējā gadījumā tiek rādīts “Ieslēgts”

Rezultāts būs “Ieslēgts”

Vispārējais datums

1 MsgBox formāts (tagad (), "Vispārējais datums")

Tas parādīs datumu kā datumu un laiku, izmantojot AM/PM pierakstu. Datuma parādīšanas veids ir atkarīgs no jūsu Windows vadības paneļa iestatījumiem (Pulkstenis un reģions | Reģions). To var parādīt kā “mm/dd/gggg” vai “dd/mm/gggg”

Rezultāts būs “7/7/2020 3:48:25 PM”

Garš randiņš

1 MsgBox formāts (tagad (), "Long Date")

Tas parādīs garu datumu, kā noteikts Windows vadības panelī (Pulkstenis un reģions | Reģions). Ņemiet vērā, ka tas neietver laiku.

Rezultāts būs “Otrdiena, 2022. gada 7. jūlijs”

Vidējs datums

1 MsgBox formāts (tagad (), "Vidējs datums")

Tas parāda datumu, kas definēts īso datumu iestatījumos, kā definēts lokalizācijā Windows vadības panelī.

Rezultāts būs '07-jūlijs-20 '

Īss randiņš

1 MsgBox formāts (tagad (), "Īss datums")

Parāda īsu datumu, kā noteikts Windows vadības panelī (Pulkstenis un reģions | Reģions). Datuma parādīšanas veids ir atkarīgs no jūsu lokalizācijas. To var parādīt kā “mm/dd/gggg” vai “dd/mm/gggg”

Rezultāts būs “7/7/2020”

Ilgu laiku

1 MsgBox formāts (tagad (), "Ilgi")

Parāda ilgu laiku, kā noteikts Windows vadības panelī (Pulkstenis un reģions | Reģions).

Rezultāts būs “4:11:39 PM”

Vidējs laiks

1 MsgBox formāts (tagad (), "Vidējs laiks")

Parāda vidēju laiku, kā to nosaka jūsu lokalizācija Windows vadības panelī. Parasti tas tiek iestatīts kā 12 stundu formāts, izmantojot stundas, minūtes un sekundes un AM/PM formātu.

Rezultāts būs '04: 15 PM '

Īss laiks

1 MsgBox formāts (tagad (), "Īss laiks")

Parāda vidēju laiku, kā noteikts Windows vadības panelī (Pulkstenis un reģions | Reģions). Tas parasti tiek iestatīts kā 24 stundu formāts ar stundām un minūtēm

Rezultāts būs '16: 18 '

Excel iepriekš noteiktu formātu izmantošanas draudi datumos un laikos

Iepriekš definētu datumu un laiku formātu izmantošana programmā Excel VBA ir ļoti atkarīga no Windows vadības paneļa iestatījumiem un arī no lokalizācijas

Lietotāji var viegli mainīt šos iestatījumus, un tas ietekmēs jūsu datumu un laiku parādīšanu programmā Excel

Piemēram, ja izstrādājat Excel lietojumprogrammu, kas izmanto iepriekš noteiktus formātus jūsu VBA kodā, tie var pilnībā mainīties, ja lietotājs atrodas citā valstī vai izmanto citu lokalizāciju. Var gadīties, ka kolonnu platumi neatbilst datuma definīcijai, vai lietotāja veidlapā Active X vadīkla, piemēram, kombinētā lodziņa (nolaižamā) vadīkla, ir pārāk šaura, lai datumus un laikus varētu parādīt pareizi.

Izstrādājot savu Excel lietojumprogrammu, jums jāapsver ģeogrāfiskā atrašanās vieta

Lietotāja definēti skaitļu formāti

Ir vairāki dažādi parametri, kurus varat izmantot, definējot formāta virkni:

Raksturs Apraksts
Nulles virkne Nav formatēšanas
0 Ciparu vietturis. Parāda ciparu vai nulli. Ja šai pozīcijai ir cipars, tas parāda ciparu, pretējā gadījumā tas parāda 0. Ja ciparu ir mazāk nekā nulles, jūs saņemsiet sākuma vai beigu nulles. Ja aiz komata ir vairāk ciparu nekā nulles, tad skaitlis tiek noapaļots līdz zīmēm aiz komata, ko parāda nulles. Ja pirms komata ir vairāk ciparu nekā nulles, tie tiks parādīti normāli.
# Ciparu vietturis. Tas parāda ciparu vai neko. Tas darbojas tāpat kā iepriekšējais nulles vietturis, izņemot to, ka sākuma un beigu nulles netiek parādītas. Piemēram, 0,75 tiktu parādīts, izmantojot nulles vietturus, bet tas būtu 0,75, izmantojot # vietturus.
. Aiz komata. Atļauta tikai viena formāta virkne. Šī rakstzīme ir atkarīga no Windows vadības paneļa iestatījumiem.
% Vietturis procentos. Reizina skaitli ar 100 un ievieto % rakstzīmi vietā, kur tas parādās formāta virknē
, (komats) Tūkstoš atdalītājs. To izmanto, ja tiek izmantoti 0 vai # vietturi un formāta virknē ir komats. Viens komats pa kreisi no komata norāda apaļumu līdz tuvākajam tūkstotim. Piem. ## 0, divi blakus esoši komati pa kreisi no tūkstoš atdalītāja norāda noapaļošanu līdz tuvākajam miljonam. Piem. ## 0 ,,
E- E+ Zinātniskais formāts. Tas parāda skaitli eksponenciāli.
: (kols) Laika atdalītājs - tiek izmantots, formatējot laiku, lai sadalītu stundas, minūtes un sekundes.
/ Datuma atdalītājs - tas tiek izmantots, norādot datuma formātu
- + £ $ ( ) Parāda burtisku raksturu.Lai parādītu rakstzīmi, kas nav uzskaitīta šeit, pirms tās ar slīpsvītru (\)

Lietotāja definēti datumu un laiku formāti

Šīs rakstzīmes var izmantot, formatējot datumu un laiku:

Raksturs Nozīme
c Parāda datumu kā ddddd un laiku kā ttttt
d Parādiet dienu kā skaitli bez nulles
dd Parādiet dienu kā skaitli ar nulli priekšā
ddd Parādiet dienu kā saīsinājumu (svētdiena - sestdiena)
dddd Parādiet pilnu dienas nosaukumu (svētdiena - sestdiena)
ddddd Parādiet datuma sērijas numuru kā pilnu datumu saskaņā ar īso datumu Windows vadības paneļa starptautiskajos iestatījumos
dddddd Parāda datuma sērijas numuru kā pilnu datumu saskaņā ar Windows vadības paneļa starptautiskajiem iestatījumiem Long Date.
w Parāda nedēļas dienu kā skaitli (1 = svētdiena)
ww Parāda gada nedēļu kā skaitli (1–53)
m Parāda mēnesi kā skaitli bez nulles
mm Parāda mēnesi kā skaitli ar nullēm priekšā
mmm Tiek parādīts mēnesis kā saīsinājums (janvāris-decembris)
mmmm Parāda pilnu mēneša nosaukumu (janvāris - decembris)
q Parāda gada ceturksni kā skaitli (1-4)
g Parāda gada dienu kā skaitli (1-366)
yy Parāda gadu kā divciparu skaitli
yyyy Parāda gadu kā četrciparu skaitli
h Parāda stundu kā skaitli bez nulles
hh Parāda stundu kā skaitli ar nulli priekšā
n Parāda minūti kā skaitli bez nulles sākuma
nn Parāda minūti kā skaitli ar nulli priekšā
s Parāda otro kā skaitli bez nulles sākuma
ss Parāda otro kā skaitli ar nulli priekšā
ttttt Parādiet laika sērijas numuru kā pilnu laiku.
AM/PM Izmantojiet 12 stundu pulksteni un parādiet AM vai PM, lai norādītu pirms vai pēc pusdienlaika.
am/pm Izmantojiet 12 stundu pulksteni un izmantojiet am vai pm, lai norādītu pirms vai pēc pusdienlaika
A/P Izmantojiet 12 stundu pulksteni un izmantojiet A vai P, lai norādītu pirms vai pēc pusdienlaika
a/lpp Izmantojiet 12 stundu pulksteni un izmantojiet a vai p, lai norādītu pirms vai pēc pusdienlaika

Jums palīdzēs attīstību vietā, daloties lapu ar draugiem

wave wave wave wave wave