Varmaan simppeli juttu, mutta pitäisi tehdä seuraavanlainen koodi:
Taulukon 1 A-sarakkeessa on tekstitietoa, B-sarakkeessa on kokonaislukuarvo.
Saman työkirjan tyhjään/uuteen taulukkoon 2 ja sen A-sarakkeeseen pitäisi generoida Taulukko 1:n A-sarakkeen tekstiä niin monta kertaa kuin Taul1:n B -sarakkeen arvo osoittaa.
Esim.
Taul 1:
Kissa 5
Marsu 1
Koira 3
jne.
Ja näistä tiedoista kakkostaulukkoon pitäisi syntyä (A-sarakkeeseen):
Kissa
Kissa
Kissa
Kissa
Kissa
Marsu
Koira
Koira
Koira
jne.
VBA -apua: tiedon kopiointi ja toistaminen
6
395
Vastaukset
- madagaskaaja
Tekisin while-silmukalla. Eli kun b-sarakkeessa on lukema, niin kopoidaan saman kohdan a-arvoa b-sarakkeen luvun verran uuteen tauluun, ja sen jälkeen siirryttäisiin seuraavalle riville, kunnes b:ssä ei ole enää mitään.
- Kundepuu
Sub Kopioi()
Dim Vika As Long
Dim Vika2 As Long
Dim orig As Worksheet
Dim kopio As Worksheet
Set orig = Worksheets("Sheet1")
Set kopio = Worksheets("Sheet2")
Worksheets("Sheet2").Range("A:A") = ""
Vika = orig.Range("A65536").End(xlUp).Row
For i = 1 To Vika
Vika2 = kopio.Range("A65536").End(xlUp).Row
If Not Vika2 = 1 Then Vika2 = Vika2 1
orig.Range("A" & i).Copy kopio.Range("A" & Vika2, kopio.Range("A" & Vika2 orig.Range("B" & i).Value - 1))
Next
End Sub
Keep EXCELing
@Kunde - Nexen
Kundepuu kirjoitti:
Sub Kopioi()
Dim Vika As Long
Dim Vika2 As Long
Dim orig As Worksheet
Dim kopio As Worksheet
Set orig = Worksheets("Sheet1")
Set kopio = Worksheets("Sheet2")
Worksheets("Sheet2").Range("A:A") = ""
Vika = orig.Range("A65536").End(xlUp).Row
For i = 1 To Vika
Vika2 = kopio.Range("A65536").End(xlUp).Row
If Not Vika2 = 1 Then Vika2 = Vika2 1
orig.Range("A" & i).Copy kopio.Range("A" & Vika2, kopio.Range("A" & Vika2 orig.Range("B" & i).Value - 1))
Next
End Sub
Keep EXCELing
@Kunde"Vika = orig.Range("A65536").End(xlUp).Row"
Mistä tuo A65536 tulee? - Kundepuu
65536 on maksimi rivimäärä yksittäisessä taulukossa EXCEl versioissa 97-2003 ja 2007-2013 vastaavasti rivien maksimimäärä 1048576.
eli suomennettuna
"Vika = orig.Range("A65536").End(xlUp).Row"
hae viimeinen ei tyhjä rivi sarakkeesta A alkaen riviltä 65536 ylöspäin ja aseta se muuttujan vika arvoksi.
Vastaavasti voidaan hakea alaspäin, vasemmalle ja oikealle ...
jos varma, että käytössä versio 2007 tai uudempi voi silloin käyttää
"Vika = orig.Range("1048576").End(xlUp).Row"
Keep EXCELing
@Kunde - jompailija
Voisiko hyödyntää pelkkää saraketietoa, esim:
LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row - Kundepuu
aivan toimiva toikin...
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
Purra sössi kaiken 2 vuodessa, itkee nyt Marinin perään
Nyt on taas sama vanha itkuvirsi, kun ei omat taidot riittänee. Kaikki on taas muiden syytä. No miten sen "Tunnin juna"317462Ikuiset kaipaajat
Miksette vaan mene sen kaipauksen kohteen luokse ja puhu sille suoraan? Mitä järkeä on kaipailla jotain puolituttua vuo1434813Nyt se on selvitetty: Sanna Marinin hallitus lisäsi menoja 41 miljardilla
”vasemmistohallitus oli katastrofaalisen huono”, sanoo kokoomus. Sanna Marinin (sd.) hallituksen tekemät menolisäykset754456Orpon hallitus runnoi Tunnin junan ilman tarvetta
Näinkö valtiontaloutta hoidetaan? Siis asiantuntijoidenkin aikoja sitten kannattamattomaksi laskema Tunnin juna tehdään83532Riikka ottaa miljardi euroa EU:n yhteisvelkaa Suomelle
Niin kääntyi irvipersun takki taas, vaikka vaalilupauksissa oli ettei yhteisvelkaa Suomi enää koskaan ota. No nyt otti m793379Lindtman ylivoimainen suosikki pääministeriksi
Lindtmania kannattaa pääministeriksi peräti 50 prosenttia useampi kuin toiseksi suosituinta Kaikkosta. https://www.ilta453170- 262794
Veronmaksajat kustantavat yrittäjien eläkkeitä jo yli 500 miljoonalla
Suomalaista yrittäjää ei kommunistista erota. Aktiivisen "yrittämisen" maksattaa yritystukina yhteiskunnalla, ja vieläpä322651Sanna Marin - Maailman paras talousasiantuntija?
PersKeKoa pukkaa? https://www.hs.fi/politiikka/art-2000011636623.html292509Persut rahoittavat velkarahalla rikkaiden ökyelämää
Minkä vuoksi persut eivät leikkaa rikkailta, joilla on maksukykyä? Tuskinpa tuo persujen käytös saa Suomen kansalta hyv882503