Konwersja Daty i_Czasu

2 views
Skip to first unread message

Lelos

unread,
Aug 1, 2010, 9:00:03 AM8/1/10
to excelandia
Sub KonwersjaDatyI_Czasu()
Dim Alf As Range: Dim X, Miejsce, Strony As Integer
Range("A3").Select
For Strony = 1 To 20
For X = 1 To 15
Miejsce = (Strony - 1) * 31 + (X - 1) * 2 + 1
Set Alf = ActiveCell.Offset(Miejsce, 0)
If Not IsNumeric(Alf) Then
Rem Konwertuje datę z tekstu na wartość
Alf.Value = CDate(Alf.Value)
End If
Next
Next
End Sub

Zadaniem procedurki jest sprawdzenie konwersja zawartości 300 komórek
z tekstu na liczbę (dane są są w tym samym formacie). Na przykład
z '2010-07-31 21:27:12 na 31.07.2010 21:27:12
Dane są tego samego formatu.
Procedurka działa. Problem polega na tym, że działa żałośnie wolno.
Może ktoś podpowie szybszą metodę

Pawel Tarnowski

unread,
Aug 2, 2010, 2:53:22 AM8/2/10
to excel...@googlegroups.com
A zwykła formuła Data() i Czas() nie wystarczą?


Paweł Tarnowski
Dział Controllingu i Analiz
(22) 355 22 50



BAKALLAND SA
ul. Fabryczna 5
00-446 Warszawa

Nr KRS: 0000253890 Sąd Rejonowy dla m. st. Warszawy
XIV Wydział Gospodarczy KRS
NIP: 521-15-01-724
Kapitał zakładowy: 2 100 000, 00 zł

--
Otrzymujesz tę wiadomość, ponieważ subskrybujesz grupę dyskusyjną Google o
nazwie "excelandia".

Aby zamieszczać posty w tej grupie, wyślij e-mail na adres
excel...@googlegroups.com.
Aby anulować subskrypcję tej grupy, wyślij e-mail na adres
excelandia+...@googlegroups.com.
Aby uzyskać więcej informacji, odwiedź tę grupę pod adresem
http://groups.google.com/group/excelandia?hl=pl.

__________ Informacja programu ESET NOD32 Antivirus, wersja bazy sygnatur
wirusow 5326 (20100730) __________

Wiadomosc zostala sprawdzona przez program ESET NOD32 Antivirus.

http://www.eset.pl lub http://www.eset.com


__________ Informacja programu ESET NOD32 Antivirus, wersja bazy sygnatur
wirusow 5332 (20100802) __________

Wiadomosc zostala sprawdzona przez program ESET NOD32 Antivirus.
http://www.eset.pl lub http://www.eset.com

Lelos

unread,
Aug 2, 2010, 6:05:38 AM8/2/10
to excelandia


On 2 Sie, 08:53, "Pawel Tarnowski" <p.tarnow...@bakalland.pl> wrote:
> A zwykła formuła Data() i Czas() nie wystarczą?
>

każda jest dobra, byle szybko chodziła pod VBA.

Cynio

unread,
Aug 3, 2010, 2:01:31 AM8/3/10
to excelandia
On 1 Sie, 15:00, Lelos <majas....@wp.pl> wrote:

> Zadaniem procedurki jest sprawdzenie konwersja zawartości 300 komórek
> z tekstu na liczbę (dane są są w tym samym formacie). Na przykład
> z '2010-07-31 21:27:12 na 31.07.2010  21:27:12
> Dane są tego samego formatu.
> Procedurka działa. Problem polega na tym, że działa żałośnie wolno.
> Może ktoś podpowie szybszą metodę

może zrób tak, wpisz do dowolnej komórki 1, skopiuj ją do schowka,
zaznacz te 300 komórek z datami jako tekst, wybierz wklej specjalnie i
opcję przemnóż. Excel powinien zacząć widzieć te daty jako liczbę
(potem już łatwo bo zmieniasz format komórek i po krzyku).

--
Pozdr.
Cynio

Lelos

unread,
Aug 3, 2010, 7:14:55 AM8/3/10
to excelandia
Faktycznie zamieniają się na liczby ! Teraz formatowanie
niestandardowe i byłoby doskonale, gdyby nie fakt że dotychczas puste
wiersze, a jest ich niestety też 300 nie zamieniły się na daty
0.01.1900 00:00:00. Może nie powinienem się nimi przejmować, w końcu
zdaje się, że i tak z nich nie korzystam (jedyna strata to utrata
przejrzystości)
Świetna sztuczka Cynio :-)
Ponadto poprawiam uprzednie wpisy:
1) tekst nie ma formatu. Po prostu jest tekstem.
2) "żałosna" procedurka wykonuje się w czasie 1:38 i co mnie teraz
zdziwiło po wyeliminowaniu warunku wyszło 1:32. Jako programista-
amator jestem zniesmaczony tak małym zyskiem.

Cynio

unread,
Aug 4, 2010, 3:09:36 AM8/4/10
to excelandia


On 3 Sie, 13:14, Lelos <majas....@wp.pl> wrote:
> Faktycznie zamieniają się na liczby ! Teraz formatowanie
> niestandardowe i byłoby doskonale, gdyby nie fakt że dotychczas puste
> wiersze, a jest ich niestety też 300 nie zamieniły się na daty
> 0.01.1900  00:00:00. Może nie powinienem się nimi przejmować, w końcu
> zdaje się, że i tak z nich nie korzystam (jedyna strata to utrata
> przejrzystości)

ta data to nic innego jak zero z nadanym formatem daty i czasu. Możesz
dla tych komórek nadać format liczbowy (wtedy będziesz widział zero
lub poprzez ctrl+h zamienić 0 na pusta komórkę

--
Pozdr.
Cynio
Reply all
Reply to author
Forward
0 new messages