Hirdetés
- Hírértékűvé tette a Lenovo, hogy az ASUS támogatja a kézikonzolját
- Mobilhálózatokra szabott EPYC-kel ugrik az 5G-s homokozóba az AMD
- Kiemelt figyelmet fordít a biztonságra az MSI szélsebes SSD-je
- Kis híján zsebre vágható 2 az 1-ben gépet villantott a TENKU
- A végletekig optimalizálja a SensorPaneleket az új AIDA64
- AMD GPU-k jövője - amit tudni vélünk
- Bambu Lab 3D nyomtatók
- Dögrováson lévő Samsung telefonból még mindig csinálhatunk DeX-es minigépet
- AMD FX
- Kezdő fotósok digitális fényképei
- Tápos kibeszélő offtopik
- TCL LCD és LED TV-k
- Fejhallgató erősítő és DAC topik
- Micro Four Thirds
- NVIDIA GeForce RTX 5070 / 5070 Ti (GB205 / 203)
-
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
-
Mutt
senior tag
válasz
m.zmrzlina
#45324
üzenetére
Szia,
Most olvasva végig a leírásodat, ugyanazt csinálod amit én is javaslok és napi szinten használok. Nincs jobb megoldás, kivétel ha Office Script-re térnél át mert ott simán lehet tömbök méretét növelni.
2 megoldást tudok javasolni.
1. A kiTömb csak 1-dimenziós legyen és a beTömb indexét tartalmazza. Amikor pedig íratsz ki, akkor a kiTömb-ből kapott index-el a beTömb-ből olvasod ki az értékeket.
Memóriában nem fog sok helyet foglalni, lassitani sem igen fogja a feldolgozást, egyedül csak a kiírás lesz lassabb mivel nem tudod egy lépésben a tömb tartalmát kiírni. (Ez a megoldás nálam egy 3 percig futó makróból 2 percet vett el, szóval nem ideális ha sokat kell a lapon dolgozni. A 2-es opcióval gyors kiíratást elérsz, de oda kell figyelni a helyes indexek használatára!)2. Ne legyen probléma hogy a nem fixelt definiált tömbnek csak az utolsó méretét lehet változtatni. Képzeld el, hogy ez a tömb 90 fokkal el van forgatva az eredetihez képest. Az első sor innentől az első oszlopban lesz, a második sor a második oszlopban és így tovább. A kódod ilyenkor csak a hivatkozásban változik.
Az alábbi minta kód a kék listából kiszűri az adatot, egy dinamikusan változó tömbbe.
A sárga a dinamikus tömb eredeti (inverz) állapotát mutatja, de azt vissza lehet könnyedén konvertálni.
Sub ReDIM_Minta()
Dim minta As Range
Dim beTomb()
Dim kiTomb()
Dim oszlopok As Long, sorok As Long, i As Long, j As Long
Set minta = ActiveSheet.Range("A1").CurrentRegion
oszlopok = minta.Columns.Count
sorok = minta.Rows.Count
'erre nincs szükség, de látható hogy sorok és oszlopok szerint van a beTömb
ReDim beTomb(1 To sorok, 1 To oszlopok)
'adatok betöltése a tömbbe
beTomb = minta
'kiTomb-öt állítsuk be hogy annyi "sora" legyen mint az erdeti oszlop szám
ReDim kiTomb(1 To oszlopok, 1 To 1)
'az első sor a beTomb-ben egy fejléc másoljuk be a kitömb-be
For i = 1 To oszlopok
'itt látszik hogy csak az index sorrendet kell felcserélni
kiTomb(i, 1) = beTomb(1, i)
Next i
'szűréssel a nőket tartalmazó rekordokat tegyük be a kiTömb-be
For i = 2 To sorok
'ha a beTomb 4. oszlopában N van akkor
If beTomb(i, 4) = "N" Then
'növeljük a kiTomb utolsó dimenzióját 1-el
ReDim Preserve kiTomb(1 To oszlopok, 1 To UBound(kiTomb, 2) + 1)
'bemásoljuk az adatokat a beTomb-ből
For j = 1 To oszlopok
kiTomb(j, UBound(kiTomb, 2)) = beTomb(i, j)
Next j
End If
Next i
'konvertálatlan dump - sárga
ActiveSheet.Range("F1").Resize(UBound(kiTomb, 1), UBound(kiTomb, 1)) = kiTomb
'konvertált dump - zöld
ActiveSheet.Range("F10").Resize(UBound(kiTomb, 2), UBound(kiTomb, 1)) = Application.Transpose(kiTomb)
End Subüdv
Új hozzászólás Aktív témák
- Mozilla Firefox
- AMD GPU-k jövője - amit tudni vélünk
- Domainekkel kapcsolatos kérdések
- Bambu Lab 3D nyomtatók
- One otthoni szolgáltatások (TV, internet, telefon)
- Dögrováson lévő Samsung telefonból még mindig csinálhatunk DeX-es minigépet
- AMD FX
- PlayStation 5
- Itt Galaxy S26 széria: az Ultra fejlődött, a másik kettő alig
- Kezdő fotósok digitális fényképei
- További aktív témák...
- BESZÁMÍTÁS! Apple MacBook Air 15 M4 32GB RAM 1TB SSD notebook garanciával hibátlan működéssel
- GYÖNYÖRŰ iPhone 15 Pro Max 256GB Blue Titanium-1 ÉV GARANCIA - Kártyafüggetlen, MS4240
- Bomba ár! Lenovo X13 Yoga G1 - i5-10G I 8GB I 256SSD I 13,3" FHD Touch I Cam I W11 I Gari!
- Telefon felvásárlás!! Samsung Galaxy A13/Samsung Galaxy A33/Samsung Galaxy A53
- HP EliteOne 800 G4 All-in-One i5-8500 16GB 512GB 23.8" Érintőkijelző!! 1 év garancia
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Fferi50
