Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VBA Solujen kopioinnista

Hoover [23.01.2007 17:35:45]

#

Mitenkä oikein excelissä voisi tehdä sellaisen luupin, että se kävisi sarakkeita niin pitkään oikealle läpi, kunnes tulee tyhjä kenttä? Solujen sisältöä olisi tarkoitus ottaa muuttujiin talteen sitä mukaan kun siirrytään A1-solusta oikealle.

Yritin jotain for-luuppia tehdä, mutta en oikein keksinyt mitenkä loopin voisi tehdä kun sivuttaissuunnassa ei liikuta numeroina, vaan kirjaimina.

Ratkaistu:
Näyttäisi sittenkin menevän ihan numeroina tuo kun oikeilla hakusanoilla osasin etsiä. Esim. Taulu.Cells(rivi, sarake).Value jne.

sqwiik [23.01.2007 17:52:40]

#

Jos muistelee, millä logiikalla se indeksi kasvaa sivuittain tehtävä helpottuu; alla jotain osviittaa.

Dim sarake As Long, monikerta As Integer, solu As String, a As Integer, b As Integer
  '' Monikerta: montako kertaa ollaan menty kirjaimet A-Z (26 kpl)
  monikerta = 0: a = 0
  Do
    sarake = sarake + 1
    If monikerta > 0 Then
      solu = Chr$(monikerta - 1 + Asc("A")) & Chr$(a + Asc("A"))
    Else
      solu = Chr$(a + Asc("A"))
    EndIf
    solu = solu & Str(rivin_nmr)
    If solu_on_tyhjä Then Exit Do
    a = a + 1
    If a Mod 26 = 0 Then monikerta = monikerta + 1: a = 0
  Loop
  '' Nyt sarake-muuttujassa on oikea sarake

Hoover [23.01.2007 17:57:41]

#

Jeps, kiitti tuostakin neuvosta. Voi kyllä olla helpompi pelkillä numeroilla pelata kun se kerta onnistuu niin. :)

BadSource [24.01.2007 09:27:28]

#

Seuraava käynnistyy tuplaklikkaamalla solua Excelissä.

'Excel VBA
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Dim i As Integer
    Dim abu As String

    Do Until IsEmpty(Target.Offset(0, i).Value)
        abu = abu & Target.Offset(0, i).Value
        i = i + 1
    Loop
    MsgBox abu
    Cancel = True 'estetään solun normaali aktivoituminen tuplaklikkauksesta
End Sub

Vastaus

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

Tietoa sivustosta