ВБА низ до данас - Претворите вредности низа у датум у програму Екцел ВБА

Преглед садржаја

Екцел ВБА низ до датума

У Вба постоји метода помоћу које можемо претворити дати низ у датум, а метода је позната као ЦДАТЕ функција у вба, ово је уграђена функција у ВБА и делови потребни за ову функцију су прво претварање низа у број, а затим претварамо дати број у датум. Формат резултата зависи само од формата системског датума.

Један од честих проблема са којима се сви суочавамо са Екцелом је „Датум и време“ и често се чувају као текстуалне вредности и у почетку остају непримећени. Али када се од њих затражи да искористе то време, ми ћемо сазнати да се те вредности чувају као текст и да уопште не знамо како да се бавимо њима. „Датум и време“ су две комбиноване ствари у једном елементу, али када се те вредности сачувају као текстуалне вредности, мучно је радити са њима.

Како претворити низове вредности у датуме?

Пример # 1

Једном када је ВБА променљива декларисана и додељена као Стринг, све што је додељено тој променљивој третираће се само као стринг. На пример, погледајте доњи код.

Шифра:

Суб Стринг_То_Дате () Дим к Ас Стринг к = "10-21" МсгБок к Енд Суб

У горњем коду променљива „к“ је дефинисана као тип података „Стринг“, а за ову променљиву смо доделили вредност као „10-21“.

Ок, покренимо код и видимо шта ћемо добити у оквиру за поруке у ВБА.

Вредност смо добили само као 10-21, али обично су то вредности, а не вредности низа. Дакле, иако је додељени тип података „Стринг“, и даље можемо претворити у датум користећи функцију претворбе типа података ЦДАТЕ ВБА.

Шифра:

Суб Стринг_То_Дате () Дим к Ас Стринг к = "10-21" МсгБок ЦДате (к) Енд Суб

У претходном делу, пре него што покажемо резултат променљиве „к“ у оквиру за поруке, доделили смо функцију ЦДАТЕ. Направљено је мало прилагођавање, да видимо колики је то велики утицај.

Сада бисмо резултат видели као „Датум“, а не више као вредност „Низ“.

Пример # 2

Сада погледајте пример доле наведеног кода.

Шифра:

Суб Стринг_То_Дате () Дим к Ас Стринг к = 43599 МсгБок к Енд Суб

У овом тренутку, горњи код би приказао резултат као „43599“, као што смо горе одредили.

Али када једном користимо функцију ЦДАТЕ, она ће се претворити у датумску вредност.

Шифра:

Суб Стринг_То_Дате () Дим к Ас Стринг к = 43599 МсгБок ЦДате (к) Енд Суб

Резултат након примене функције ЦДАТЕ је следећи.

Будући да је екцел датум сачувао као серијски број, додељени серијски број 43599 једнак је датуму 14.05.2019 када се примењује формат датума.

Такође можемо применити формат на датум као „ДД-МММ-ГГГГ“ да бисмо тачно прочитали датум.

Шифра:

Суб Стринг_То_Дате1 () Дим к Ас Стринг Дим ДатеВалуе Ас Дате к = 43599 ДатеВалуе = ЦДате (к) МсгБок Формат (ДатеВалуе, "ДД-МММ-ИИИИ") Енд Суб

У претходном делу сам прогласио једну додатну променљиву за чување резултата. За ову променљиву применио сам функцију конверзије ЦДАТЕ.

Даље, користио сам функцију ФОРМАТ да бих применио формат формата „ДД-МММ-ИИИИ“ и резултат ће бити као што је приказано доле.

Овим можемо јасно прочитати део дана и месец. Такође зависи од формата вашег системског датума у ​​Екцелу. Пошто је мој системски формат датума био „ММ-ДД-ГГГГ“, приказивао се тако, али то не би требало да представља препреку форматирању.

Пример # 3

Сада ћемо заправо видети како су датуми обликовани као текстуалне вредности у ћелијама радног листа. Испод је слика датума сачуваних као текст на радном листу.

У колони А од А2 до А12 имамо вредности које гледају датум, али када погледамо картицу формата, она приказује формат „Текст“. Сада морамо претворити ове вредности из текста у датум.

Испод је код који сам написао да претворим вредности датума обликоване у текст у стварне датуме.

Шифра:

Суб Стринг_То_Дате2 () Дим к Ас Лонг 'Подаци се налазе у више од једне ћелије, па треба проћи кроз сваку ћелију' Опен Фор Лооп Фор к = 2 То 12 'Подаци почињу од 2. реда и завршавају се у 12. реду, дакле 2 до 12 Ћелије (к, 2) .Вредност = ЦДате (Ћелије (к, 1) .Вредност) Следеће к Крај Суб

Ако покренете код, он ће нам дати следећи резултат.

Ствари које треба запамтити

  • ЦДАТЕ је функција претворбе типа података, али се може користити за претварање сачуваног датума ВБА низа у стварне вредности датума.
  • Резултат формата функције ЦДАТЕ зависи само од формата системског датума.
  • Датуми се у Екцелу чувају као серијски бројеви, па је потребно форматирање да би се приказивали као датуми.

Занимљиви Чланци...