

Excel - PasteSpecial a VBA problem
Zdravim,
potreboval bych poradit, s jednou "drobnosti".
Mam textovy soubor, ktery pomoci VBA na tlacitku naimportuju do noveho excel workbooku a pres funcki "Range().Copy/PasteSpecial" vkopiruju do druheho excel souboru. Problem je v tom, ze v cilovem "Sheetu" mam ted 2 sloupce... Pro jednoduchost vezmeme, ze kopiruju jen jednu bunku z textoveho souboru s hodnotou treba 10(tedy cislo).
Prvni bunka A1 obsahuje nakopirovana data pomoci f-ceVBA: 'Range("A1").PasteSpecial Paste:=xlValues', jedna se o cisla kopirovana do sloupce s preddefinovanym formatem 'Text'(ten sloupec ma format cely) a jako textove se take viditelne ulozi (hodnota 10 je zarovnana vpravo).
Ve druhem sloupci(bunka B1) je Excel funce, ktera kontroluje hodnotu daneho pole A1 a hleda ji v druhem sheetu v tabulce a podle toho doplnuje nejaky jiny hodnoty. (V sheetu 'Pokus' je hodnota ciselna ulozena ve formatu textu)
=IF(A1<>"";(VLOOKUP($A1;Pokus!A:H;8;FALSE)) ;"----")
Problem je v tom, ze kdyz napriklad zadam do bunky A1 v cilovem sheetu hodnotu 10, tak mi vyse uvedena funkce vyjede hodnotu "ok", ale pokud hodnotu '10' na to same misto nakopiruju pomoci VBA, tak se objevi retezec '---' nebo #N/A# (podle toho jestli pouzivam funkci ISNA nebo normalni IF na kontrolu prazdnosti pole). Kdyz pak najedu na hodnotu '10' v bunce A1 F2(Edit) a pak Enter, tak prestoze se ani viditelny format bunky ani nic jineho nezmeni, tak se najednou v B1 objevi kyzena hodnota 'ok' Je problem v tech formatech a jak to mam sakra spravit at to nemusim delat rucne kdyz tech zaznamu je 10 000 a potrebuju tu funkci na naimportovany data jen roztahnout a aplikovat ?
Problém je v tom, že porovnávané hodnoty majú rôzny dátový typ, a preto sa nerovnajú. Zmena formátu bunky nemení dátový typ hodnoty, ktorá sa v nej nachádza. Dôsledkom je, že napr. číselná hodnota 10 naformátovaná ako text síce vyzerá rovnako ako textová hodnota 10, napriek tomu sa tieto hodnoty nerovnajú.
Riešenie závisí od toho, akého typu sú hodnoty, ktoré chceš porovnávať. Pred porovnaním je potrebné hľadanú hodnotu z bunky A1 prekonvertovať na rovnaký dátový typ, aký sa nachádza v prehľadávanej tabuľke. Vzorec by mohol vyzerať napríklad takto:
Diky, ja jsem ten format vcera vytahl do noveho skryteho sloupce C (tedy '=TEXT(A1;0)') a muj vzorec jsem pak odkazal na tento sloupec, coz fungovalo.. zahrnuti do funkce IF se mi pak uz z lenosti nechtelo resit