IT NEWS PC REVUE PC FORUM FreeBSDInternet time: @922
Obsah fóra
Pravidlá  •  Kontakt  •  Prihlásenie  •  Registrácia

Myslite ekologicky s Orangeom

Zapojte sa do súťaže Zeleň pre mesto a získajte viac stromov pre svoje okolie www.orange.sk

Priprav sa na futbalové EURO

Exkluzívna súťaž o Ford Fiesta! Kurzová superponuka a bonus 100€ https://www.tipsport.sk

Nohavičky na ples: Áno čo nie?

Po mesiaci strávenom na rôznych vianočných a silvestrovských večierkoch feminity.zoznam.sk

Gardena pre záhradu

Všetko pre starostlivosť o záhradu a zavlažovanie trávnika! www.gardena.sk

Potrebujete si privyrobiť?

Práca na doma s príjmom 500 až 700 €, zmluvne podložená, overená v praxi. www.pracadoma.sk

VBA Excel ... použitie úvodzoviek v premennej

Zaslať odpoveď
AutorSpráva
Jezoo
Užívateľ
Užívateľ

Založený: 14.12.2007
Príspevky: 5

PríspevokZaslal: Pi 14.12.07 15:56Odpovedať s citátomNávrat hore

Dobry den, mate neiekto skusenosti ako použiť úvodzovky v premennej ? Ide o to ze si v makre vytvaram vzorec na vypočet sumy s podmienkou:
=SUMIF($F$2:$AZ$2;"TOTAL";F7:AZ7) ... napr., ja použijem kod:
Cells(riadok, 5).Formula = "=SUMIF($F$2:$AZ$2;" & ""TOTAL"" & ";F" & riadok & ":AZ" & riadok & ")" ... samozrejme mi to nefunguje.
Viete mi niekto poradit ?
Dakujem.
Zobraziť informácie o autoroviOdoslať súkromnú správu
audiotrack
Zablokovaný užívateľ
Zablokovaný užívateľ

Založený: 18.11.2006
Príspevky: 680

PríspevokZaslal: Pi 14.12.07 16:17Odpovedať s citátomNávrat hore

kód:
Cells(riadok, 5).Formula = "=SUMIF($F$2:$AZ$2;" & "'TOTAL'" & ";F" & riadok & ":AZ" & riadok & ")"

apostrofy v úvodzovkách.
Zobraziť informácie o autoroviOdoslať súkromnú správu
Jezoo
Užívateľ
Užívateľ

Založený: 14.12.2007
Príspevky: 5

PríspevokZaslal: Pi 14.12.07 16:34Odpovedať s citátomNávrat hore

Run-time Error "1004"
Application-defined or object defined error
Zobraziť informácie o autoroviOdoslať súkromnú správu
audiotrack
Zablokovaný užívateľ
Zablokovaný užívateľ

Založený: 18.11.2006
Príspevky: 680

PríspevokZaslal: Pi 14.12.07 22:44Odpovedať s citátomNávrat hore

no zvláštne.. ti apostrofy tam nerobia chybu, dokonca si tam môžeš dať aj úvodzovky ak chceš takto:
kód:
Cells(riadok, 5).Formula = "=SUMIF($A$1:$C$2;" & Chr(34) & "TOTAL" & Chr(34) & ";A7:C8)"

problém tam ale robí to rovnása a za boha neviem zistiť prečo. Ak ho zmažeš, ten reťazec sa ti vypíše pekne aj s úvodzovkami. Ak ho tam zase dáš, už to nejde. Iné funkcie mi idú vypísať v pohode, napríklad
kód:
[C6].Formula = "=BIN2DEC(111)"


takže chyba bude niekde skrytá. Ten vzorec máš dobre, skúšal som ho. Preto neviem pochopiť prečo to tam to rovnása nechce zobrať.
Zobraziť informácie o autoroviOdoslať súkromnú správu
blazon
Užívateľ
Užívateľ

Založený: 15.09.2009
Príspevky: 8

PríspevokZaslal: Ut 15.09.09 12:29Odpovedať s citátomNávrat hore

Zdravím.

Vyriešili ste to už niekto prosím Vás ? Veľmi ma to zaujíma, pretože momentálne som na tom vkladaní vzorca s úvodzovkami stroskotaný už pár dní. Je to presne tak, ak tam "=" nieje - text OK, ak tam "=" je - Application-defined or object-defined error
a je úplne jedno či to priraďujete do Cells(), Range(), ako Value či ako Formula...

Zaujímavé ale je, že keď dám napr. niečo takéto jednoduché, tak to funguje.
kód:
Sheets("Zostava").Range("B1").Formula = "=SIN(0.5)&""B"""

ale ak dám niečo s podmienkou IF, tak už to nefunguje:
kód:
Sheets("Zostava").Range("A1").Formula = "=IF(NazSK=""A"";""B"";Cislo)"

Niečo s tou podmienkou IF bude v neporiadku, keďže mi nepracuje korektne ani v definovaných názvoch, ani v podmienenom formátovaní.
Ešte podotknem, že mám Office 2003 Pro SK + SP1 + SP2, Vista x64 CZ Ult.

Ďakujem za prípadnú pomoc.
Zobraziť informácie o autoroviOdoslať súkromnú správu
Jezoo
Užívateľ
Užívateľ

Založený: 14.12.2007
Príspevky: 5

PríspevokZaslal: Ut 15.09.09 13:14Odpovedať s citátomNávrat hore

... podla mna je to nejaka chyba Excelu, niektore vzorce idu, niektore nie ... ja to momentalne riesim tak ze si v jednom liste vytvorim bo buniek vzorce ktore potrebujem (alebo tie co mi generuju chybu ked ich vytvaram v kode) a jednoducho si bunku v kode s danym vzorcom skopirujem a prilepim na miesto kde ju potrebujem ... takto mi funguju vsetky vzorce ... nie je to naidealnejsie riesenie pre "programatora" ... ale na veci ktore vytvaram mi to v pohode staci ...
Zobraziť informácie o autoroviOdoslať súkromnú správu
blazon
Užívateľ
Užívateľ

Založený: 15.09.2009
Príspevky: 8

PríspevokZaslal: Ut 15.09.09 14:15Odpovedať s citátomNávrat hore

No tak to je veľký prúser, pretože ja mám zdrojovú tabuľku s asi 400 riadkami, a vytváram automatizovanú zostavu, pri ktorej nebudem vedieť koľko bude riadkov zdroja, pričom každý záznam zastupuje v zostave 3 riadky, v každom 6 stĺpcov, a každá buňka obsahuje iný vzorec. Mení sa to podľa obsahu zdrojových dát. Nieje to možné urobiť nijako inak ako cez nazvyme to "distribuované" vzorce vo VBA, čiže vzorec pre každú buňku treba najskôr vypočítať a zložiť, potom vložiť, a nechať Excel vypočítať. Dohromady asi 7200 vrozcov + formátovanie buniek. Mám tie výpočty urobené pokusne aj celé vo VBA, ale je to 10x pomalšie ako keď použijem Excelácke funkcie.

Pokúsim sa urobiť nejaký univerzálny vzorec, ktorý by bol nachystaný na pomocnom hárku, ako vravíš Ty, len neviem či si s tou rýchlosťou kopírovania do toľkých buniek pomôžem.

EDIT: Nefunguje ani ďalšie riešenie pomocou Evaluate:
kód:
p = "CONCATENATE(NazSK=""A"";""B"";Cislo)"
Sheets("Zostava").Range("A1") = Evaluate(p)

vráti do bunky hodnotu "#HODNOTA", navyše by to bol jednorázový výpočet, nereagovalo by to na zmenu dát (čo by sa dalo ošetriť cez akciu Change)
Zobraziť informácie o autoroviOdoslať súkromnú správu
blazon
Užívateľ
Užívateľ

Založený: 15.09.2009
Príspevky: 8

PríspevokZaslal: Pi 18.09.09 0:35Odpovedať s citátomNávrat hore

Ďakujem za nakopnutie správnym smerom. To riešenie so zhotovením vzorca manuálne, v pomocnom hárku, a potom vzorec kopírovať vo VBA na potrebné miesta, sa ukázalo ako veľmi efektívne, jednoduché, a hlavne rýchle, pretože môžem kopírovať vzorce nie po jednom ale naraz po 400ks/s. Síce to teraz nereaguje na zmenu automaticky, ale zase manuálny režim vytvárania zostavy som stiahol na 11 sekúnd, čo je super. Vo VBA to bolo 3 min.
...Dík...
Zobraziť informácie o autoroviOdoslať súkromnú správu
gozer
Užívateľ
Užívateľ

Založený: 01.06.2010
Príspevky: 1

PríspevokZaslal: Ut 01.06.10 16:26Odpovedať s citátomNávrat hore

zápis funkcie vo VBA s podmienkou IF
napr.: =IF(A1=1;"OK")
dá sa vo VBA zapísať takto: ActiveCell.FormulaR1C1 = "=IF(RC[-1]=1,""OK"")"

alebo:
=IF(A1=1;"OK";IF(A1>1;"ZLE"))
ActiveCell.FormulaR1C1 = "=IF(RC[-1]=1,""OK"",IF(RC[-1]>1,""ZLE""))"
Zobraziť informácie o autoroviOdoslať súkromnú správu
Zobraziť príspevky z predchádzajúcich:    
Zaslať odpoveď
Nemôžete pridávať nové témy do tohto fóra.
Nemôžete odpovedať na témy v tomto fóre.
Nemôžete upravovať svoje príspevky v tomto fóre.
Nemôžete mazať svoje príspevky v tomto fóre.
Nemôžete hlasovať v tomto fóre.

Powered by phpBB 2.x.x © 2005 - 2012 PCforum, webhosting by WebSupport, edited by JanoF

SEO - optimalizácia pre vyhľadávače

Freebsd