NEPRAVDA   otázka

VB6/VBA

Ahoj, chtěl bych se zeptat.

Mám následující kód:

rng2.select
Selection.Replace What:="trum ", Replacement:=ActiveCell.FormulaR1C1 = _
        "=IF(RIGHT(RC[-3],18)=""1 Olympia centrum "",1,IF(RIGHT(RC[-3],18)=""2 Olympia centrum "",2,227))" , LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False

Nevíte, proč mi po proběhnutí makra v buňce vyskočí jako výsledek NEPRAVDA místo čísel 1,2 nebo 227

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Kuriózní makro = kuriózní výsledek. Argument podmíněného nahrazení nahrazujete jiným výstupem. Je-li splněna podmínka k nahrazení, makro se provede, změní svůj argument a vyhodnotí, že argument neplatí - v aktivní buňce již není "trum "

U "RIGHT" nemáte druhý parametr, Excel si doplní jedničku a funkce vrátí poslední znak - tam máte v obou podmínkách mezeru.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Ono to ještě pokračuje doprava, takže druhý parametr u RIGHT je, pravdou je ale, že to vyhodnocení je potom nepravdou. Musím to celé nějak překopat. Každopádně díky za odpověď.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

"Ono to ještě pokračuje doprava" - ono je co?

Tak, jak jste makro napsal: RIGHT(RC[-3],18)=""1 Olympia centrum "" je uveden je první parametr text, druhý - délka, chybí.

Také je chyba v adresování buněk, pokud tak zůstane a makro bude pracovat jak chcete, dostanete vždy výsledek 227 - správně 'RIGHT(R[-3]C[18])=""1..., pokud opravdu chcete vyhodnocovat buňku vzdálenou 18 sloupců za aktivní buňkou.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Ono je druhý řádek kódu, když budete scrollovat doprava. Nechtěl jsem vás naštvat. Naopak poděkovat, přivedlo mě to k myšlence, jak to vyřešit jinak. A vyhodnocovat chci buňku o tři doleva, to je určitě dobře, protože je to nahrané přes Záznam makra. číslo 18 potom značí počet znaků zprava, které chci porovnávat.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Nijak jsem se nenaštval, není proč. S tím tučným textem jsem se ztratil mezi apostrofy a uvozovkami a nevím co ještě tam formátuje písmo. Zvýraznit jsem chtěl pouze funkci RIGHT(R[-3]C[18])

Nerad jsem zmatkoval, makra nijak nepoužívám, pohybuji se jen v tabulkách. Nedošlo mi, že makro zapíše místo čárky středník a že 18 je tedy druhý parametr funkce RIGHT. Omlouvám se.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

I tak jste mi pomohl, problém už mám vyřešen.

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback