Nie rozumiem VBA

15 views
Skip to first unread message

Lelos

unread,
Mar 20, 2012, 6:09:43 PM3/20/12
to excel...@googlegroups.com
Mam problem z zapisaniem stringu "marc24" w podany sposób:
dim nick as string
ActiveCell.Offset(1).Value = nick

zwykle mi się sprawdzało (poza stringami typu liczba z zerem lub zerami wiodącymi), a tu klapa :(
wychodzi 24.mar wyświetla się to jako 24.03.2012 format zmienia się na d.mmm
Tego się nie spodziewałem. Właściwie to BUG. Ale nie chcę nadużywać tego słowa. Czyżbym musiał sobie komplikować tą prostą instrukcję przypisania ?



Pawel Tarnowski

unread,
Mar 21, 2012, 4:41:01 AM3/21/12
to excel...@googlegroups.com
A nie wystarczy dodać apostrofów, aby excel nie zmieniał formatu?


From: excel...@googlegroups.com [mailto:excel...@googlegroups.com] On Behalf Of Lelos
Sent: Tuesday, March 20, 2012 11:10 PM
To: excel...@googlegroups.com
Subject: Nie rozumiem VBA

--
Otrzymujesz tę wiadomość, ponieważ subskrybujesz grupę dyskusyjną Google o nazwie „excelandia”.
Aby wyświetlić tę dyskusję w internecie, odwiedź stronę https://groups.google.com/d/msg/excelandia/-/St_2xv-AQDAJ.
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 6984 (20120320) __________

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

Lelos

unread,
Mar 21, 2012, 6:21:40 AM3/21/12
to excel...@googlegroups.com

Dziękuję za odpowiedź. Ale chcę się jeszcze upewnić czy nie prościej będzie sformatować tą kolumnę jako tekst ( bo tak się złożyło, że wszystkie stringi trafią tu)  ?  Czy wpisanie stringów typu 158876 nie rozformatuje komórki albo (o zgrozo !!!) jeszcze nie zapisanej części kolumny ?


Pawel Tarnowski

unread,
Mar 21, 2012, 6:31:20 AM3/21/12
to excel...@googlegroups.com
To najprostsze rozwiązanie i powinno zadziałać - sprawdziłem że działa gdy wpisuję liczby ręcznie. Ale żeby mieć 100% pewności trzeba by jednak sprawdzić to w praktyce, czyli sformatować tak kolumnę i uruchomić kwerendę VB. Bez tego zostaje ten 1% że coś się rozjedzie.


From: excel...@googlegroups.com [mailto:excel...@googlegroups.com] On Behalf Of Lelos
Sent: Wednesday, March 21, 2012 11:22 AM
To: excel...@googlegroups.com
Subject: Re: Nie rozumiem VBA


Dziękuję za odpowiedź. Ale chcę się jeszcze upewnić czy nie prościej będzie sformatować tą kolumnę jako tekst ( bo tak się złożyło, że wszystkie stringi trafią tu)  ?  Czy wpisanie stringów typu 158876 nie rozformatuje komórki albo (o zgrozo !!!) jeszcze nie zapisanej części kolumny ?


--
Otrzymujesz tę wiadomość, ponieważ subskrybujesz grupę dyskusyjną Google o nazwie „excelandia”.
Aby wyświetlić tę dyskusję w internecie, odwiedź stronę https://groups.google.com/d/msg/excelandia/-/ItjP-HYkbToJ.

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 6985 (20120321) __________

Lelos

unread,
Mar 22, 2012, 5:01:19 AM3/22/12
to excel...@googlegroups.com
Sformatowałem ręcznie kolumnę jako tekst by Excel automatycznie nie zamieniał wprowadzanych tam łańcuchów składających się z samych cyfr na liczby, wycinając przy okazji zera wiodące i co jeszcze boleśniejsze niektórych łańcuchów jak marc24 (właśnie z tym c w środku) i zamieniał je na liczby i dalej na daty.
Problem podany w 1 poście został rozwiązany, ale w moim skoroszycie się ... rozjechał . Formatowanie było niezbędne, ale nie uchroniło komórek przed zmianą formatu. Otóż najpierw przenosiłem tam komórki metodą  .Copy  .Paste !  Dlaczego o tym nie napisałem ?  Bo byłem w 100% pewny, że kopiuję tekst - więc Excel, go nie przeliczy.
Może i nie przeliczy, ale ... jeżeli skopiujemy tekst do komórek sformatowanych jako tekst Excel zamieni formatowanie z tekstu na ogólne.
Teraz kiedy w takiej komórce umieścimy string "podejrzany dla Excela" - ten go zniekształci.
Podsumowując: kluczowe jest 1) sformatowanie komórek jako tekstowych, 2) jeśli coś w ten zakres kopiujemy to nie przez Selection.Paste  tylko Selection.PasteSpecial Paste:=xlPasteValues



Reply all
Reply to author
Forward
Message has been deleted
Message has been deleted
Message has been deleted
Message has been deleted
0 new messages