Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VBA: Solujen kopiointi

Heglund [14.11.2014 22:18:01]

#

Tervehdys! Seuraavanlainen ongelma. Olen rakentanut loop rakenteen, joka pyörii niin kauan kuin A solu on tyhjä. Käytössäni on Dim i as integer ja i=1. Nyt kun looppi pyörii niin olen tehnyt koodin, että aina kun solussa A lukee tietty nimi niin koko rivi kopioidaan Range ("A" & i).Entirerow.copy. Nyt haluaisin, että kopioitava alue olisi A:N ja riippuen i:n arvosta missä rivissä kulloinkin liikutaan. Olen yrittänyt koodia Range("A:N" & i).select -> Selection.copy jne. mutta ei onnistu. Mikä koodi tuollaisen alueen kopio ja kuitenkin niin, että loopin edetessä i:n muuttaessa arvoa kopioitava rivi siirtyy aina yhden rivin alemmas? Entä jos haluan valita eri soluja samalta riviltä esim. a6, c6 ja d6? kuitenkin i:n arvon mukaan mennään millä rivillä ollaan

Mod. poisti täydellisen väärin käytetyt kooditagit. Kirjaudu sisään ja lue palaute!

Metalfusion [15.11.2014 11:38:28]

#

Ilmeisesti Excel VBA:sta kyse.
Tuo range-syntaksi on väärin, tarkoitat varmaan: esim A1:N1 eikä A:N1 jonka tuo koodi tuottaa.

Muuta siis:
Range("A:N" & i) -> Range("A" & i & ":N" & i)

Itse tykkään näissä tosin käyttää Cells(x,y) funktiota joka palauttaa yhden solun sisältävä Range-objektin riviltä x ja sarakkeesta y. Suorakulmaisen rangen saa sitten esim: Range(Cells(1,2), Cells(3,4)).

Btw. Googlella löytyy todella paljon Excel VBA materiaalia, kuten esimerkkejä, ainakin jos osaa englantia.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta