< návrat zpět

MS Excel


Téma: Vybrané řádky do pole rss

Zaslal/a 15.12.2023 18:28

ZačátečníkDobrý den,
nedaří se mi vytvořit makro, které by načetlo vybrané (filtrované) řádky do pole.
Načte se mi vždy pouze jeden řádek z výběru.
Díky

Příloha: zip55822_test.zip (18kB, staženo 3x)
Zaslat odpověď >

#055824
elninoslov
Vy tam chcete zistiť aj koľko je zobrazených stĺpcov?
cntCol = .SpecialCells(xlCellTypeVisible).Columns.Count
Teda hrozí, že niektoré budú skryté? Teda môže nastať, že budete chcieť spojiť do poľa nielen nesúvislé riadky, ale môže to byť ešte aj v nesúvislých stĺpcoch?citovat
#055825
Začátečník
Počet sloupců se může měnit, avšak žádné sloupce nebudou nikdy skryty.
Spíše jde o to, že rngFilter.Columns(1)vrací pouze jeden řádek dat, místo 3 v ukázce.citovat
#055827
elninoslov
Skúste
Příloha: zip55827_55822_test.zip (20kB, staženo 2x)
citovat
#055829
Začátečník
Funkční, takže fígl je v tom, že se nejprve načte celá oblast a následně se převedou pouze viditelné řádky oblasti z pole všech záznamů podle čísla řádku.
Jen mi hlava nebere proč Set rngFilter = .SpecialCells(xlCellTypeVisible)nevybere celou nesouvislou oblast dat, ale vždy jen první řádek oblasti.

Dík

EDIT:
domnívám se, že cyklusFor i = 1 To rngArea.Rows.Count
bude zbytečný, protože rngArea bude obsahovat vždy právě jeden řádek. Nebo se pletu?citovat
#055832
elninoslov
Nie. Výsledok obsahuje samostatné podoblasti, a niektoré vlastnosti toho celku sa nedajú prečítať tak, že budete mať uvedený spoločný počet. Musíte si prejsť každú podoblasť zvlášť, a prečítať jej samostatné vlastnosti. Vy keď sa hneď pokúsite zistiť danú vlastnosť, dostanete odpoveď z prvej podoblasti. Preto Vás mýli, že to má 1 riadok. Nemá.

Nemusíte načítať celé dátové pole. Mne to tak prišlo jednoduchšie. Môžete načítať pre každú podoblasť jej vlastné dáta, a korigovať posun vo výslednom poli. Podľa mňa je zvolený postup jednoduchší a rýchlejší. Načítať obrovské množstvo údajov naraz je rýchlejšie, ako načítať veľké množstvo malých podoblastí.

EDIT:
Reakcia na EDIT:
Práveže Vy si musíte zistiť pre každú podoblasť jej veľkosť
rngArea.Rows.Count
viď prvý odstavec.

Zabudol som na konci zmazať definíciu, ktorú som nepoužil
Set wsData = Nothing

Inak celé sa to dá ľahko prerobiť na funkciu, ktorá Vám vráti pole hodnôt. To ma napadlo, keď ste písal, že stĺpce budú variabilné. Vstupným parametrom by bola iba adresa hlavičky.citovat
#055837
Začátečník
Ta definice je prkotina.

Klidně můžeme toto téma dále řešit v Zjištění počtu řádků.

Zřejmě jsem se špatně vyjádřil, počet sloupců bude vždy pevně daný a neměnný.

Vytvořené pole dat (jako Global) podle barvy prvního sloupce pak bude použito buď na vložení nových záznamů nebo aktualizaci změněných hodnot již exitujících záznamů.
Odlišení podle barvy buňky prvního sloupce předpokládám při neúspěšné aktualizaci zdrojového souboru dat.citovat

Uživatelské menu

Nejste přihlášen(a)
avatar\n

Menu

On-line nástroje

Formulář Faktura

Formulář Faktura IV

Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.

Aktivní diskuse