Wpis z mikrobloga

#vba #programowanie #pytanie #excel

czesc, potrzebuje w vba zmienic liste numerow (kazdy numer jest oddzielony enterem, w osobnej komorce) na jeden ciag znakow oddzielony przecinkiem. wiem juz jak to zrobic, wygooglalem taki kod:

Range("L2").Value = Join(Application.Transpose(Range("A2", Range("A" & Rows.Count).End(xlUp))), ",")

ale problem jest taki ze jak mam malo numerow to formatuje mi ta komorke np. tak 2.71860370261271E+59

jak dodam wiecej to jest ok, pojawia sie w komorce l2 caly zakres ladnie po przecinku. Czy mozna jakos do tego kodu co podalem wyzej dodac aby przy wykonywaniu np. zmienial formatowanie?
  • 12
@turbine: sprobuj tak:

Range("L2").Value = "" & Join(Application.Transpose(Range("A2", Range("A" & Rows.Count).End(xlUp))), ",")
albo ustaw formatowanie komorki l2 jako Text
@turbine: w sumie tak patrze na kodzik i teoretycznie join juz tobie powinien zwrocic stringa, to moze sprobuj jescze ustawic kolumne A jako tekstowa i na swiezo powprowadzaj liczby
@ck__: od a2 do a6 mam liczby 12 cyfrowe, posortowane po kolei. dalej NIE wywala mi to po przecinku (chyba ze mam wiecej numerow, ale chce zeby to dzialalo gdy jest duzo i gdy jest malo numerkow).

gdy dodam do tego kodu apostrof

Range("L2").Value ="'"& Join(Application.Transpose(Range("A2", Range("A" & Rows.Count).End(xlUp))), ",")

to dziala, tylko wskkuje mi apostrof na poczatku tego wygenerowanego stringa a chcialbym zeby ladnie wygladalo bez ;p.
albo ustaw formatowanie komorki l2 jako Text


@ck__: kurka, teraz dziala, zrobilem tak:

Range("L2").NumberFormat = "@"
Range("L2").Value = Join(Application.Transpose(Range("A2", Range("A" & Rows.Count).End(xlUp))), ",")

potestuje zobaczymy czy zda egzamin.

@cohontes: musi ;p
@cohontes: @ck__:

A takie pytanko. Bo przerobilem sobie ten kod na takie cos ze robie sobie zaznaczenie kilku numerow i wlaczam makro i automtycznie kopiuje mi tego stringa po przecinku do schowka (kod nizej). Czy jest mozliwosc aby zrobic ta operacje w makro bez korzystania z komorki L2 (ze robi to sie wszystko w pamieci tak jakby). Moge miec raport w excelu ktory bedzie cos miec w komorce L2 i