Hirdetés
- 4K-s okosmonitor huppant le az MSI tervezőasztaláról
- Almás felhangokat pendít meg a Cougar legújabb, E-ATX-es háza
- A kelleténél jobban lebutítja egyes GeForce RTX 5090-es VGA-it a Zotac
- Komoly technikai frissítést kap a Grand Theft Auto V
- És akkor bevillant a nagy ötlet: miért ne lehetne hűteni egy tápcsatlakozót?
- Multimédiás / PC-s hangfalszettek (2.0, 2.1, 5.1)
- NVIDIA GeForce RTX 4080 /4080S / 4090 (AD103 / 102)
- AMD GPU-k jövője - amit tudni vélünk
- Titán TUF módra: teszten az NVIDIA GeForce RTX 5070 Ti!
- OLED TV topic
- Milyen videókártyát?
- OLED monitor topic
- Nvidia GPU-k jövője - amit tudni vélünk
- Milyen egeret válasszak?
- HiFi műszaki szemmel - sztereó hangrendszerek
-
PROHARDVER!
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
- Multimédiás / PC-s hangfalszettek (2.0, 2.1, 5.1)
- NVIDIA GeForce RTX 4080 /4080S / 4090 (AD103 / 102)
- Ingyen kellene, de tegnapra
- DOOM - The Dark Ages
- One otthoni szolgáltatások (TV, internet, telefon)
- Mibe tegyem a megtakarításaimat?
- Mozilla Firefox
- Samsung Galaxy S23 és S23+ - ami belül van, az számít igazán
- Torrent meghívó kunyeráló
- AMD GPU-k jövője - amit tudni vélünk
- További aktív témák...