On tarkoitus tehdä makrolla sellainen Copy-paste-toiminto, jossa makro ensimmäisenä vertaa sarakkeen otsikkoa, kun otsikko täsmää, niin kopioidaan ko. sarakkeen tiedot toiseen välillehteen.
Olen tehnyt jo aiemmin lähes vastaavan toiminnon, jossa For-luuppi skannaa yhden sarakkeen tietoja läpi ja vertaa milloin se täsmää halutun sanan kanssa.
Rivin skannauksessa en keksi, miten saan numeroarvon muutettua saraketunnukseksi.
Alla For-luuppi, jonka olen tehnyt, mutta ku se ei toimi
FirstCol = 0
For FindPositio = 1 To 50
FirstCol = FirstCol 1
FirstCell = FirstCol & 3
If (Range(FirstCell) = "Positio") Then
GoTo JUMP1
End If
JUMP1:
Next FindPositio
Jos olen oikein ymmärtänyt, niin "FirstCell" -muuttujan arvoksi tulee tuolla skannattavan sarakkeen tunnus ja rivitunnus eli jos esim. solusta E3, löytyy sana "Positio", niin "FirstCell"-muuttujan arvoksi tulee 53. Tuo vitonen pitäisi siis saada saraketunnukseksi E, eli minun pitäisi saada "Firstcell"-muuttujan arvoksi E3, onka perusteella kopioin sarakkeen E muuttujat toiselle välilehdelle.
Olen tehnyt jo aiemmin lähes vastaavan toiminnon, jossa For-luuppi skannaa yhden sarakkeen tietoja läpi ja vertaa milloin se täsmää halutun sanan kanssa.
Rivin skannauksessa en keksi, miten saan numeroarvon muutettua saraketunnukseksi.
Alla For-luuppi, jonka olen tehnyt, mutta ku se ei toimi
FirstCol = 0
For FindPositio = 1 To 50
FirstCol = FirstCol 1
FirstCell = FirstCol & 3
If (Range(FirstCell) = "Positio") Then
GoTo JUMP1
End If
JUMP1:
Next FindPositio
Jos olen oikein ymmärtänyt, niin "FirstCell" -muuttujan arvoksi tulee tuolla skannattavan sarakkeen tunnus ja rivitunnus eli jos esim. solusta E3, löytyy sana "Positio", niin "FirstCell"-muuttujan arvoksi tulee 53. Tuo vitonen pitäisi siis saada saraketunnukseksi E, eli minun pitäisi saada "Firstcell"-muuttujan arvoksi E3, onka perusteella kopioin sarakkeen E muuttujat toiselle välilehdelle.
Vastaukset 1
Vanhimmat
Käytä Cells-ominaisuutta. Sillä voi pyöritellä soluja siten, että rivi ja sarake on molemmat numeroita.
Sub EtsiTiettySarake()
' Etsitään vain riviltä 3
Dim FirstCol As Long
Dim FirstCell As String
FirstCol = 0
For FindPositio = 1 To 50
FirstCol = FirstCol 1
If Cells(3, FirstCol) = "Positio" Then
FirstCell = Cells(3, FirstCol).Address(False, False)
JUMP1
End If
JUMP1
Next FindPositio
End Sub