-
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
-
Fferi50
Topikgazda
válasz
gycs02 #52880 üzenetére
Szia!
Azt hiszem ott van a "baj", hogy az utolso sort olyan oszlopban keresed, amiben a szűrés után éppen nincs adat, hiszen ide szeretnéd beírni az x-eket.
"utolso = Range("cj" & Rows.Count).End(xlUp).Row
Set srng = Range("cj" & elso & ":cj" & utolso)"
Így aztán az utolsó sor értéke kisebb lesz mint a 13 induló érték (akár 1 is lehet!), ezért látod azt, hogy felfelé tölti ki az értékeket.
Amint korábban írtam, az utolsó sor értékét abban az oszlopban kell megkeresni, amelyben az utolsó érvényes adat van.
Tehát az AW oszlop alapján keressük meg az utolsó sort és a CJ oszlopot jelöljük ki kitöltendőnek:elso=13 'ha a fejléc a 12 sorban van, akkor ez a lehetséges első szűrt sor
utolso = Range("AW" & Rows.Count).End(xlUp).Row
Set srng = Range("CJ" & elso & ": CJ " & utolso)
For Each cl In srng.Columns(1).SpecialCells(xlCellTypeVisible).Cells
cl.Value = "x"
Next
Próbáld ki ezt légy szíves.
Üdv.
Ps. A makróknál használd légy szíves </> gombot (MS előtt van). -
Delila_1
veterán
válasz
gycs02 #52880 üzenetére
Nem tartom jó tippnek az elso értékét fixen megadni (elso=13), ugyanis közel sem biztos, hogy a 13. sor értéke megjelenik a szűrt állományban.
Ha a szűrt állomány első sorát keresed meg
(elso = Range("cj13:cj1000").SpecialCells(xlCellTypeVisible).Row
), akkor nem kell ciklussal végigpásztázni az adatokat. A ciklus lassítja a futást.
Új hozzászólás Aktív témák
- BESZÁMÍTÁS! ASRock X570 R9 5900X 32GB DDR4 1TB SSD RX 7800 XT 16GB Fractal Design Meshify 2 850W
- HIBÁTLAN iPhone 14 256GB Blue -1 ÉV GARANCIA - Kártyafüggetlen, MS3244
- LG OLED & OLED evo Televíziók -30%
- Bomba ár! Dell Latitude 7490 - i7-8GEN I 16GB I 256-512SSD I 14" FHD I HDMI I Cam I W11 I Garancia!
- CSX 2x2GB (4GB) DDR 800 MHz kit
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft.
Város: Budapest
Cég: FOTC
Város: Budapest