Tarvitsisin makron, jolla saan tietosolun sisällön kopioitua tyhjiin alapuolella oleviin soluihin kunnes vastaan tulee uusi tietosolu, joka sitten taas kopioidaan kaikkiin sen alapuolella oleviin tyhjiin soluihin jne.
Yritin väsätä tämmöistä, mutta eihän se tietystikään toimi:
Sub Kopioi_ylempi_solu_alempaan_tyhjään_soluun ()
For i = 1 To 99645
For j = 1 To 3
If.Cells(1, i 1) = "" then copy.Cells(1, i)
Paste.Cells(1, i 1)
Cells(j, i 1)
Next j
Next i
End Sub
Terveisin Jari Kemppainen
Yritin väsätä tämmöistä, mutta eihän se tietystikään toimi:
Sub Kopioi_ylempi_solu_alempaan_tyhjään_soluun ()
For i = 1 To 99645
For j = 1 To 3
If.Cells(1, i 1) = "" then copy.Cells(1, i)
Paste.Cells(1, i 1)
Cells(j, i 1)
Next j
Next i
End Sub
Terveisin Jari Kemppainen
Vastaukset 5
Vanhimmat
Sub Kopioi_ylempi_solu_alempaan_tyhjään_soluun()
For i = 1 To 99645
For j = 1 To 3
If Cells(i 1, j) = "" Then Cells(i, j).Copy Cells(i 1, j)
Next j
Next i
End Sub
Kiitos Tämmönen. Hyvin toimi, paitsi että kone hyytyi, joten piti suorittaa pienemmissä erissä.
Onko tarpeellista täyttää joka ikinen rivi?
Toiminta voi nopeutua, jos rivin
If Cells(i 1, j) = "" Then Cells(i, j).Copy Cells(i 1, j)
muuttaa muotoon
If Cells(i 1, j) = "" Then Cells(i 1, j) = Cells(i, j)
Tämä kopioi pelkät arvot ilman muotoiluja tms.
valitse joku noista riveista, mikä sopii tapaukseesi ja ei takuulla hyydy...
ActiveSheet.UsedRange.SpecialCells(xlCellTypeBlanks) = "=R[-1]C"
Range("A1:D9").SpecialCells(xlCellTypeBlanks) = "=R[-1]C"
Selection.SpecialCells(xlCellTypeBlanks) = "=R[-1]C"
Keep EXCELing
@Kunde
tossa vielä universaalimakro, käytössä olevalle alueelle...
Sub TäytäTyhjät()
Range("A1").Resize(Cells.Find(What:="*", SearchOrder:=xlRows, _
SearchDirection:=xlPrevious, LookIn:=xlValues).Row, _
Cells.Find(What:="*", SearchOrder:=xlByColumns, _
SearchDirection:=xlPrevious, LookIn:=xlValues).Column).SpecialCells(xlCellTypeBlanks) = "=R[-1]C"
End Sub
Keep EXCELing
@Kunde