| | |
| Stránka: 1 z 1
| [ Príspevkov: 9 ] | |
Autor | Správa |
---|
Registrovaný: 14.12.07 Prihlásený: 15.09.09 Príspevky: 5 Témy: 2 | Napísal Jezoo: 14.12.2007 14:56 | |
|
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.
|
|
Registrovaný: 17.11.06 Prihlásený: 31.12.07 Príspevky: 677 Témy: 9 |
Kód: Cells(riadok, 5).Formula = "=SUMIF($F$2:$AZ$2;" & "'TOTAL'" & ";F" & riadok & ":AZ" & riadok & ")"
apostrofy v úvodzovkách.
|
|
Registrovaný: 14.12.07 Prihlásený: 15.09.09 Príspevky: 5 Témy: 2 | Napísal autor témy Jezoo: 14.12.2007 15:34 | |
|
Run-time Error "1004"
Application-defined or object defined error
|
|
Registrovaný: 17.11.06 Prihlásený: 31.12.07 Príspevky: 677 Témy: 9 |
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ť.
|
|
Registrovaný: 15.09.09 Prihlásený: 15.09.09 Príspevky: 7 Témy: 0 | Napísal blazon: 15.09.2009 12:29 | |
|
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.
|
|
Registrovaný: 14.12.07 Prihlásený: 15.09.09 Príspevky: 5 Témy: 2 | Napísal autor témy Jezoo: 15.09.2009 13:14 | |
|
... 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 ...
|
|
Registrovaný: 15.09.09 Prihlásený: 15.09.09 Príspevky: 7 Témy: 0 | Napísal blazon: 15.09.2009 14:15 | |
|
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)
|
|
Registrovaný: 15.09.09 Prihlásený: 15.09.09 Príspevky: 7 Témy: 0 | Napísal blazon: 18.09.2009 0:35 | |
|
Ď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...
|
|
Registrovaný: 01.06.10 Prihlásený: 23.06.16 Príspevky: 1 Témy: 0 | Napísal gozer: 01.06.2010 16:26 | |
|
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""))"
|
|
| Stránka: 1 z 1
| [ Príspevkov: 9 ] | |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
| Excel VBA v Ostatné programy | 2 | 435 | 22.11.2015 11:49 dano1805 | | excel makra vba v Delphi, Visual Basic | 1 | 1116 | 04.06.2011 9:43 Forty- | | Excel - VBA - ako riesit cyklus? v Ostatné | 3 | 708 | 17.05.2018 16:11 Winnetou | | [VBA Excel] Blokovanie spustenia podprogramu v Delphi, Visual Basic | 0 | 1023 | 26.04.2008 22:52 Jezoo | | Použitie premennej z jedného eventu v inom evente v Technológia .NET | 1 | 518 | 09.10.2012 13:53 ThePlaky | | VBA Solver v exceli v Ostatné | 0 | 320 | 06.11.2014 2:16 lucka.x | | VBA Code pre otvorenie Word súboru inak v Delphi, Visual Basic | 0 | 833 | 09.03.2015 14:46 robeno67 | | existencia premennej v PHP, ASP | 3 | 552 | 25.08.2008 12:45 toma-mato | | predanie premennej v JavaScript, VBScript, Ajax | 4 | 1797 | 15.10.2009 12:20 pilná lama glama | | Odovzdavanie premennej v PHP, ASP | 11 | 801 | 05.10.2009 9:45 Tominator | | Zmena $premennej v PHP, ASP | 9 | 666 | 03.02.2010 14:55 rooobertek | | Dlzka premennej v JavaScript, VBScript, Ajax | 7 | 614 | 10.06.2009 19:37 roach189 | | vytvorenie premennej... v PHP, ASP | 6 | 573 | 24.09.2008 22:43 vl4kn0 | | nazov premennej v JavaScript, VBScript, Ajax | 6 | 520 | 07.01.2010 23:28 roach189 | | deklaracia premennej v PHP, ASP | 7 | 1015 | 19.08.2009 12:14 Snacker | | [VYRIESENE] volanie premennej v PHP, ASP | 2 | 454 | 13.02.2009 13:50 beginner |
| Nemôžete zakladať nové témy v tomto fóre 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
|
|