Kezdőlap › Fórumok › Excel programozás › [Resolved] VBA – bizonyos sorok kigyűjtése kétdimenziós tömbbe
- This topic has 6 hozzászólás, 3 résztvevő, and was last updated 6 years telt el by delila.
-
SzerzőBejegyzés
-
2018-11-16-16:36 #5289
Sziasztok,
Egy relatíve egyszerűbb VBA kóddal kapcsolatban kérném a segítségeteket.
Egy két oszlopból álló tartományból bizonyos feltételnek eleget tevő sorokat szeretnék kigyűjteni egy tömbbe, majd utána a tömb tartalmát bemásolni egy adott helyre.
A mellékelten csatolt táblában ezt egy nagyon egyszerű példával szemléltettem. Ha a „B” oszlopban lévő cella értéke 4, akkor tárolja el az egész sort egy kétdimenziós tömbbe, majd a ciklus végén a tömb tartalmát másolja be a megadott helyre (nyilván adódik a filter+copy/paste megoldás, azonban bizonyos okok miatt mindenképp a tömbös megoldásra lenne szükségem).
A példában látható rutin lefut, sajnos azonban minden sort bemásol a megadott helyre.
Megköszönném, ha tudnátok segíteni a rutin korrigálásában.
PéterAttachments:
You must be logged in to view attached files.2018-11-16-18:00 #5291Szia Péter!
Tettem fel egy fájlt, ami több oszlopot is tartalmaz.
Biztosan van elegánsabb megoldás, én ezt tudtam összehozni.
Az első lap „megszűrt” adatait a második lapra gyűjti ki.Üdv,
KatiAttachments:
You must be logged in to view attached files.2018-11-17-17:04 #5294Szia Kati,
Nagyon szépen köszönöm a gyors segítséget!
Az ilyen kérdéseknél az „elegancia” számomra messze nem preferencia, tehát mindegy, hogy milyen úton jutunk el a kívánt eredményhez.
Még egyszer ezer köszönet,Péter
2018-11-18-07:34 #5296Szívesen.
Azért remélem, jön egy szebb megoldás is.2018-11-18-09:47 #5297Sziasztok!
Letöltöttem Pexcel.xlsm et és sajnos nekem nem működik.
Konkrétan a munka1 tartlma nekem nem szűrhető, és a munka2 lapon sem találtam sem képletet, sem vb utalást sem!
Delila ! tudnál esetleg segíteni, hogy nekem miért nem működik?
Előre is köszönöm válszod!
Üdv.: Norbi
2018-11-18-13:58 #5298Lépj a VB szerkesztőbe (Alt+F11), és ott a Module1-ben megtalálod a TombosMasolas makrót, azt kell elindítani.
A füzetből az Alt+F8 előhozza a füzetben lévő makrók nevét, így is indíthatod anélkül, hogy a VB szerkesztőbe lépnél.
Láthatod, hogy a füzet xlsm kiterjesztésű, ami makróbarát.2018-11-19-08:09 #5305Egyszerűsítettem a makrón. A tömbbe eredetileg fordítva tettem be az adatokat (sor, oszlop).
Sub TombosMasolas() Dim Tomb(), sor As Long, usor As Long, oszlop As Integer, uoszlop As Integer, tombsor As Integer usor = Cells.SpecialCells(xlLastCell).Row uoszlop = Cells.SpecialCells(xlLastCell).Column ReDim Tomb(usor, uoszlop) tombsor = 0 For sor = 2 To usor If Cells(sor, 2) = 4 Then tombsor = tombsor + 1 For oszlop = 1 To uoszlop Tomb(oszlop, tombsor) = Cells(sor, oszlop) Next End If Next Sheets(2).Range("A1" & ":M" & uoszlop) = Application.Transpose(Tomb) End Sub
-
SzerzőBejegyzés
- Be kell jelentkezni a hozzászóláshoz.