Pitäisi saada siirrettyä kursoria makrolla esim. rivi alaspäin ja muutama sarake oikealle niin, ettei anneta uutta osoitetta, esim. siis ei B1, vaan siltä riviltä missä kursori sattuu olemaan, niin yksi rivi alaspäin. Miten moinen tehdään?
Vastaukset 9
- Anonyymi
Mitä sinä sillä tiedfolla tekisit?
- Anonyymi
Sub siirry(r, c)
ActiveCell.Offset(r, c).Select
End Sub- Anonyymi
Tuo makro muuttaa aktiivisen solun paikkaa mihin tahansa suuntaan.
siirry(1,0) siirtää sitä rivin alaspäin. - Anonyymi
Anonyymi kirjoitti:
Tuo makro muuttaa aktiivisen solun paikkaa mihin tahansa suuntaan.
siirry(1,0) siirtää sitä rivin alaspäin.Ei ihan se mitä tarkoitin. Tuo makro valitsee vain esim. seuraavan solun vaikkapa alaspäin, mutta jos on piilotettuja rivejä seuraavana tuntematon määrä, niin pitäisi saada kursori siirtymään seuraavalle näkyvälle riville eli niin kuin nuolinäppäimellä tuo siirtyisi. Ongelmana tässä on se, että ei etukäteen tiedetä seuraavan näkyvän rivin osoitetta.
- Anonyymi
Anonyymi kirjoitti:
Ei ihan se mitä tarkoitin. Tuo makro valitsee vain esim. seuraavan solun vaikkapa alaspäin, mutta jos on piilotettuja rivejä seuraavana tuntematon määrä, niin pitäisi saada kursori siirtymään seuraavalle näkyvälle riville eli niin kuin nuolinäppäimellä tuo siirtyisi. Ongelmana tässä on se, että ei etukäteen tiedetä seuraavan näkyvän rivin osoitetta.
Do While rng.EntireRow.Hidden Or rng.EntireColumn.Hidden
Set rng = rng.Offset(1, 0)
Loop
rng.Select
Tuon pitäisi valita seuraava näkyvä solu. - Anonyymi
Anonyymi kirjoitti:
Ei ihan se mitä tarkoitin. Tuo makro valitsee vain esim. seuraavan solun vaikkapa alaspäin, mutta jos on piilotettuja rivejä seuraavana tuntematon määrä, niin pitäisi saada kursori siirtymään seuraavalle näkyvälle riville eli niin kuin nuolinäppäimellä tuo siirtyisi. Ongelmana tässä on se, että ei etukäteen tiedetä seuraavan näkyvän rivin osoitetta.
Tämä muuttaa aktiivisen solun paikkaa mihin tahansa suuntaan näkyvällä alueella:
Sub siirry(r, c)
dr = 0
Do
ActiveCell.Offset(Sgn(r), 0).Select
If ActiveCell.EntireRow.Hidden = False Then dr = dr + Sgn(r)
Loop While dr <> r
dc = 0
Do
ActiveCell.Offset(0, Sgn(c)).Select
If ActiveCell.EntireColumn.Hidden = False Then dc = dc + Sgn(c)
Loop While dc <> c
End Sub - Anonyymi
Anonyymi kirjoitti:
Do While rng.EntireRow.Hidden Or rng.EntireColumn.Hidden
Set rng = rng.Offset(1, 0)
Loop
rng.Select
Tuon pitäisi valita seuraava näkyvä solu.Tuosta alusta puuttuu Set Rng = ActiveCell
Lisäksi lopetusehdon pitäisi olla silmukan lopussa .
Set Rng = ActiveCell
Do
Set Rng = Rng.Offset(1, 0)
Debug.Print Rng.Address
Loop While Rng.EntireRow.Hidden Or Rng.EntireColumn.Hidden
Rng.Select Anonyymi kirjoitti:
Ei ihan se mitä tarkoitin. Tuo makro valitsee vain esim. seuraavan solun vaikkapa alaspäin, mutta jos on piilotettuja rivejä seuraavana tuntematon määrä, niin pitäisi saada kursori siirtymään seuraavalle näkyvälle riville eli niin kuin nuolinäppäimellä tuo siirtyisi. Ongelmana tässä on se, että ei etukäteen tiedetä seuraavan näkyvän rivin osoitetta.
Sub Siirry()
SendKeys "{Down}"
End Sub
@Kunde
Keep EXCELing- Anonyymi
kunde kirjoitti:
Sub Siirry()
SendKeys "{Down}"
End Sub
@Kunde
Keep EXCELingKiitos! Tuota juuri hain. Siitä tuli lopulta tämän näköinen:
Sub Siirry()
SendKeys "{Down}"
SendKeys "+{Right 10}"
End Sub
Lisäsin siihen myös valinnan.
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
- 882882
- 671016
- 70959
Mikä on mielestäsi keskustelupalstan tarkoitus?
Tuolla toisessa ketjussa kävi ilmi jotain minkä itse koen hieman hassuksi. Nykypäivänä yllättävän moni ilmeisesti kokee,273826Nyt aletaan terveydenhuollossa karsimaan "turhista" operaatioista
Eräitä toimia ei enää tehdä, vaan yritetään korvata halvemmilla. Nykyään esimerkiksi polven tähystysleikkaukset lähes l140788- 57726
Ttp:llä kuontalot ojennukseen
Ttp n yrittäjä ilmoitti facessa, että ttp: n tiloihin tulee lokakuun eka vkl parturi. Se tulee parturoimaan vähävaraiste72661Törkeä petosepäily Suomussalmella
Uutisoi maikkari. Uhrin nimiin on nostettu pankkilainaa, hänet on saatu sijoittamaan hevosiin ja ostamaan autoja. Ei ta15656- 46635
- 39632