< návrat zpět

MS Excel


Téma: problém při výběru rss

Zaslal/a 31.1.2011 21:31

Ahoj a hezký den,

už mi to leze na mozek. Prosím poraďte.
Mám stranu pracovní, kde je fůra dat(mění se) a jsou tam i řádky s požadovaným počtem řádků. Napsal jsem si makro:

For i = 0 To Cells(21, 20) 'počet záznamů

'zadaní rozsahu

horni = Cells(19, 24 + i) 'ukazatele začátku a konce bloku
dolni = Cells(20, 24 + i)
leva = 2
prava = 10
cil_r = Cells(19, 24 + i) 'kam
cil_s = 2
stranka = "f_obj"

'vlastní procedura
Worksheets("pracovni").Select
Range(Cells(horni, leva), Cells(dolni, prava)).Select
Selection.Copy
Sheets(stranka).Select
Cells(cil_r, cil_s).PasteSpecial xlPasteValues
Application.CutCopyMode = False
Worksheets("pracovni").Select

Next i

No v makru to pracovalo, pokus jsem v DIM neměl některou z proměnných na konci řádku. Jenže jak to dám do těla code, trvale to nechce pracovat s proměnnými. I když je vypíšu těsně před a jsou v pořádku. Kde dělám chybu?
Děkuji a hezký den.

Zaslat odpověď >

#003949
avatar
dobrý den,
tak jsem asi vyčerpal vše a nevím jak dál. Prosím, nemáte někdo vyzkoušené makro či rutinu, jež blok označený proměnnými (levý hormí, pravý dolní) zkopíruje na místo určené proměnnými? Moc by mi to pomohlo.
Chodí mi to v makru, ale ve smyčce for ... next mi to hlásí chybu nenalezení objektu či proměnné.
Předem moc a moc děkuji.citovat
icon #003950
Poki
jak se se tady napsalo asi 1000x - priloz soubor, jinak se radi dooost tezko!!!! 7citovat
#003951
avatar
posílám to celé, když to vykuchám, funguje to. viz makro - module2

vložil jsem list popis, kde je funkce popsána. Díky moc.
Příloha: zip3951_nabidka_prazdne.zip (73kB, staženo 11x)
citovat
icon #003953
Poki
Nejsem si jisty, jestli spravne pouzivate promenne, resp. prirazovani hodnot do nich.
Napr. dolni = Cells(20, 24 + i) znamena, ze v cyklu, kdy i=0 se pouzije hodnota z bunky X20 (radek 20, sloupec 24+0) - nejde o odkaz na bunku, ale HODNOTU bunky!!!
Adresu bunky dostanete takto: dolni = Cells(20, 24 + i).Address

Proste mi to jinak nedava smysl...citovat
#003956
avatar
musím se nad tím zamyslet. Takže když jsem, si tu proměnnou nechal vypsat a byla v pořádku, ještě to nic neznamená? Já chtěl posouvat ukazatel po buňkách a jejich obsah je v proměnných. Děkuji, mohlo by to mít něco společného. I když původně proměnné neměly žádný posun, byly na pevné adrese.

když dám dolni = Cells(20, 24 + i).Address tak mi to ale nevrátí hodnotu v této buňce, že? vyzkouším. Zatím moc děkuji.citovat
icon #003957
Poki
Pokud jde o promennou dolni, chtel jsem (predpokladam) ziskat cislo radku, melo by to tedy byt takto: dolni = Cells(20, 24 + i).Row
Pokud by slo o cislo sloupce, tak Cells(20, 24 + i).Column
Jinak, dolni = Cells(20, 24 + i).Address by se rovnalo $X$20citovat
#003958
avatar
děkuji za doplnění vědomostí. Určitě se mi to bude hodit v rozplétání klubka.

mám dva řádky čísel, jejichž počet je dán počtem předělů - spočítám na začátku a uložím do buňky. Tu pak naštu jako

počet cyklů.

pak v každém cyklu chci přečíst jeden sloupek a z horního řádku určit řádek, odkud se má určit blok, ze spodního řádku spodní hodnotu.
Sloupce si určím jinde. Pak chci tento prostor zkopírovat.
Chtěl jsem vysvětlit, co vlastně z buňky potřebuji .

chci v cyklu posouvat ukazatel buňky a její hodnota mi naplní proměnnou.citovat
icon #003960
Poki
Mozna je to tim, ze nejsem uplne z nejrychlejsich, ale ja proste nechapu, co chcete udelat nebo vam v souboru chybi hodnoty v bunkach, ktere pouzivate.

Konkretne:
1) Bunka cells(21,20), tedy X20 - zde ma byt zadana horni hranice cyklu (bunka je prazdna).
2) Bunky Cells(19,24+i), tedy X19, Y19...atd - (krome X19 prazdne)
3) Bunky cells(20,24+i), tedy X20, Y20...atd (vsechny prazdne)

Na zacatku cyklu tedy rikate, ze se ma cyklus provades od 0 do "" - prazda bunka, takze nula se jeste provede, jenze narazi na to, ze je prazdna bunka x20 (dolni), takze oblast nemuze byt definovana!

Nevim, co s tim, jaka je idea...citovat
#003983
avatar
Přivedl jste mě na jádro problému.
Ano, na začátku jsou ty buňky prázdné. Tam se doplní údaje až podle prohledání tabulky a podle dělení a počtu odstavců.
Dokonce i inkrementace buněk je v pořádku.
Chyba byla triviální. Cyklus 0 až i je vlastně o jeden víc než je velikost i. Tím se to dostalo z rozsahu a najelo na nedefinovanou buňku. Mátlo mě, že již po prvním průchodu při msgboxu hodilo chybu.
Hloupé přehlédnutí. Moc děkuji za navedení k řešení. 2citovat

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