Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno Je možné v Excelu nahradit uvedené makro vzorci (funkcí)?

nechápem, prečo tam vôbec spomíname nejaké vzorce, keď to nemá nijakú spojitosť.
Pokiaľ by som vedel, o aké vzorce ide, možno by šlo vymyslieť nejakú fintu.

Inak skutočne nie je možné, aby sa bunka na základe zadania nejakej hodnoty do nej samotnej zmenila na niečo iné. Ide to len makrom.

Ale prečo sa to nedá nejak obísť:
1) prečo to, čo sa má testovať, že či sa to rovná malému písmenu "s", nemôže byť napísané do inej bunky (napr. v stĺpci A)a v prípade, že v stĺpci A bude "s", tak sa do stĺpca B zapíše "start"?
2) iná finta: čo tak využiť automatické dokončovanie: do bunky A1 napíšeš "start" (a ak chceš, obsah ukryješ napríklad vlastným formátom ;;;). Potom ak do A2 napíšeš "s", automatické dokončovanie sa postará, že ti navrhne slovo "start", stačí odentrovať. Akurát, že to nerozlišuje veľké a malé "s"
3) ďalšia "kravina" je trebárs vlastný formát, ktorý ti z "s" urobí "start", je, že nadefinuješ formát bunky , vlastný: @"tart".
Ak do bunky zapíšeš malé "s", bude tam "start". Problém: keď napíšeš napr "x", výsledkom bud "xtart". Takže otázka: bude sa do stĺpca A písať aj niečo iné než "s" alebo si chcel len urýchliť zápis slova "start" zadaním samotného písmena "s"?

Všetky ostatné stĺpce sa už dajú urobiť bezproblémovo vzorcom.

Momentálne ma iný trik nenapadá, snáď ešte dotaz, prečo tam makro nesmie byť. Tým by si to mal poriešené (v takom prípade sa to dá aj výrazne jednoduchšie, než tvojim makrom a síce udalosťou Worksheet.Change, s využitím parametra Target)

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count <> 1 Then
        Exit Sub
        Else: If Target.Column = 1 And Len(Target) = 1 And Asc(Target) = 115 Then Target = "start"
    End If
End Sub
Tento kód Ti naraz rieši celý stĺpec A.
Ostatné stĺpce už riešiš vzorcami.

P.S. funkcia Row() nemá význam, bude to vždy totožné číslo riadka v ktorom je vzorec

Reakce na odpověď

1 Zadajte svou přezdívku:
2 Napište svou odpověď:
3 Pokud chcete dostat ban, zadejte libovolný text:

Zpět do poradny