- Keringető szivattyú vezérlése: még okosabb fűtés
- Asszociációs játék. :)
- Nagy "hülyétkapokazapróktól" topik
- PLEX: multimédia az egész lakásban
- Fűzzük össze a szavakat :)
- CTEK akkumulátor töltő és másolatai
- Drive! - Az utolsó gurulás idén a Quadrifoglio-val
- Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
- Egy korszak vége
- Szólánc.
-
LOGOUT.hu
A Microsoft Excel topic célja segítséget kérni és nyújtani Excellel kapcsolatos problémákra.
Kérdés felvetése előtt olvasd el, ha még nem tetted.
Új hozzászólás Aktív témák
-
Pakliman
tag
Egy lehetséges megoldás:
Sub Makró1()
Dim us As Long 'utolsó sor
Dim sor As Long
Dim osz As Long
Dim odb As Long 'figyelendő oszlopok száma
Dim nüdb As Long 'nem üres cellák a sorban
Dim ü As Long 'hány oszlopra van a következő nem üres cella
Dim t
t = Timer
With Application
.Calculation = xlCalculationManual
.ScreenUpdating = False
End With
'21121 sor
'soronként átlag 1,4 db üres cella
'Proci: Ryzen 5 2600
'16GB RAM
'Futási idő: 9,84 másodperc
us = Columns("L").Rows(Cells.Rows.Count).End(xlUp).Row
odb = Range(Columns("L"), Columns("Q")).Columns.Count
For sor = 1 To us
nüdb = Application.CountIf(Range(Cells(sor, "L"), Cells(sor, "Q")), "<>")
If nüdb < odb Then
For osz = Columns("L").Column + 1 To Columns("Q").Column - 1
If IsEmpty(Cells(sor, osz)) Then
If Application.CountIf(Range(Cells(sor, osz + 1), Cells(sor, "Q")), "<>") > 0 Then
'Ha van egyáltalán még átpakolható adat...
'Ezen vizsgálat nélkül 12,2 másodpercig fut a 9,84 helyett!!
ü = 1
Do While IsEmpty(Cells(sor, osz + ü)) And (osz + ü <= Columns("Q").Column - 1)
ü = ü + 1
Loop
Cells(sor, osz) = Cells(sor, osz + ü)
Cells(sor, osz + ü).ClearContents
Else
Exit For
End If
End If
Next osz
End If
Next sor
With Application
.Calculation = xlCalculationAutomatic
.ScreenUpdating = True
End With
Debug.Print Round(Timer - t, 2)
End SubA futás ideje nagymértékben függ az üres cellák számától
[ Szerkesztve ]
Új hozzászólás Aktív témák
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest