< návrat zpět

MS Excel


Téma: Limit proměnné VBA - error 6 rss

Zaslal/a 21.12.2017 20:12

Ahoj, mám soubor, kde je 54000 řádků a cca 20sloupců.
Napsal jsem více verzí maker a z 16ti minut jsem to dokázal stáhnout na 44vteřin výpočtů. Fígl je v tom, že jsem vybrané sloupce nacpal do jediné proměnné tedy například "Data" na která se odkazuju Data(1,2), rychlost makra je pak obrovská.
Nicméně dnes makro ještě dodělávám a potřeboval jsem tam přidat jeden sloupeček navíc a excel začal hlásit error 6, nevíte zda to jde nějak rozšířit?
Když to tak vezmu, potřebuji 54 000 řádků a 5 sloupců (270 000 buněk) celkem do proměnné DataX a do proměnné DataY 54 000 řádků a jiných 5 sloupců (dalších 270 000 buněk), první proměnná data načte úplně v pohodě a druhá hlásí error.
Lze nějak proměnné rozšířit? Nějak se mi nedaří to nacpat do Dim Long, stále hází chybu.

Zaslat odpověď >

#038849
avatar
Chyba bude jinde. Následuje pokusný kód:
Sub Pokus()
Dim AA, BB
AA = Range("A1:E60000")
BB = Range("F1:K60000")
MsgBox AA(60000, 5) & " " & BB(60000, 5)
End Sub
Zdrojové buňky jsem naplnil a proceduru jsem spustil. Proběhla bez závad bez hlášení jakékoliv chyby.citovat
#038850
avatar
máte pravdu, vytvořil jsem náhodná data od řádku A1 až V60000 a funguje mi to.
Můj kód je následující ale skončí errorem - sice to nic nevyhodnocuje, ale snažím se prozatím jen nahrát vše do proměnné:

Sub makroo()

Set ListROM = Sheets("ROM")
Set ListVyhodnoceni = Sheets("Vyhodnocení")

VRadku = ListVyhodnoceni.Cells(Rows.Count, "A").End(xlUp).Row

VDataOm = ListVyhodnoceni.Range("K3:O" & VRadku)
VDataRom = ListVyhodnoceni.Range("Q3:U" & VRadku)

End Sub
citovat
#038851
avatar
rád bych zaslal excel, ale jde o firemní data, tak bohužel nemohu, ale po přenesení Vašeho scriptu do firemních dat to opět nefunguje, ale nevím kde hledat chybu. Ve sloupcích jsou texty, datumy a prázdné buňkycitovat
#038852
avatar
To skôr chirurg zoperuje slepé črevo cez SMSky, ako toto tu vyriešime. 4

A nemalo by tam byť?
SET VDataOm = ListVyhodnoceni.Range("K3:O" & VRadku)citovat
#038853
avatar
VYŘEŠENO!!! Tak blbá chyba :/... Je to export ze systému a ten veškerá data nastavuje na formát Obecný i když je to datum, text nebo číslo, ale data jsou na první pohled viditelná jako text, pokud totiž vlezu do editace bunky s datumem a potvrdím entrem, až tehdy se sám od sebe přepíše formát bunky na datum. Chyba byla v tom, že kde evidujeme číslo smlouvy například ve tvaru "Smlouva-987654" tak ten sloupeček měl nastavený formát datum, ale číslo smlouvy se zobrazovalo správně.. až když jsme komplet celý excel nastavil na formát obecný, tak mi to do proměnné náhrálo všechno.. Moc děkuji všem za ochotu a pomoc 1 1citovat
#038854
avatar
No teda netuším, kde bola chyba, ale keďže je to firemné, tak by ma to ani nemuselo zaujímať.citovat
#038855
avatar
chyba byla v tom, že v buňce byl text, ale buňka byla nastavená na formát "Datum" - v excelu se to zobrazovalo správně, ale VBA si s tím neporadilo a samotný text "Smlouvy-987654" to dávalo do proměnné, ale jako datum a to skončilo errorem a spadlo celé to makro :). To bylo spíš jen jako vysvětlení :)citovat
#038856
elninoslov
Mne sa nedarí nasimulovať pád makra pri akomkoľvek naformátovaní čohokoľvek krížom krážom. Skúste iba 1 riadok, či dostanete chybu. A skúste aj nadefinovať pole, teda
Sub makroo()
Dim VDataOm()
Dim VDataRom()

Set ListROM = Sheets("ROM")
Set ListVyhodnoceni = Sheets("Vyhodnocení")

VRadku = ListVyhodnoceni.Cells(Rows.Count, "A").End(xlUp).Row

ReDim VDataRom(1 To VRadku, 1 To 5)
ReDim VDataOm(1 To VRadku, 1 To 5)

VDataOm = ListVyhodnoceni.Range("K3:O" & VRadku).Value2
VDataRom = ListVyhodnoceni.Range("Q3:U" & VRadku).Value2

'Na konci
Erase VDataOm
Erase VDataRom
End Sub

Zaujímavá haluška. A to mám polia rád...citovat
#038862
avatar
elninoslov: Váš kód funguje i při chybném formátu a je to tím, že jste použil ".Value2". V mém kódu to nebylo a vždy došlo k chybě, tímto způsobem to jde také obejít a není třeba hlídat formáty. Děkuji za vylepšení 1citovat

Uživatelské menu

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

Menu

Formulář Faktura

Formulář Faktura IV

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

Helios iNuvio

Používáte podnikový systém Helios iNuvio? Potřebujete pomoci se správou nebo vyvinout SQL proceduru? Více informací naleznete na stránce Helios iNuvio.

On-line nástroje