[ Príspevkov: 9 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 14.12.07
Prihlásený: 15.09.09
Príspevky: 5
Témy: 2 | 2

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.


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 17.11.06
Prihlásený: 31.12.07
Príspevky: 677
Témy: 9 | 9

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

apostrofy v úvodzovkách.


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 14.12.07
Prihlásený: 15.09.09
Príspevky: 5
Témy: 2 | 2
Napísal autor témyOffline : 14.12.2007 15:34 | VBA Excel ... použitie úvodzoviek v premennej

Run-time Error "1004"
Application-defined or object defined error
:cry:


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 17.11.06
Prihlásený: 31.12.07
Príspevky: 677
Témy: 9 | 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ť.


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 15.09.09
Prihlásený: 15.09.09
Príspevky: 7
Témy: 0 | 0

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.


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 14.12.07
Prihlásený: 15.09.09
Príspevky: 5
Témy: 2 | 2
Napísal autor témyOffline : 15.09.2009 13:14 | VBA Excel ... použitie úvodzoviek v premennej

... 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 ...


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 15.09.09
Prihlásený: 15.09.09
Príspevky: 7
Témy: 0 | 0

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)


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 15.09.09
Prihlásený: 15.09.09
Príspevky: 7
Témy: 0 | 0

Ď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...


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 01.06.10
Prihlásený: 23.06.16
Príspevky: 1
Témy: 0 | 0

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""))"


 [ Príspevkov: 9 ] 


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



Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy.

Excel VBA

v Ostatné programy

2

562

22.11.2015 11:49

dano1805

V tomto fóre nie sú ďalšie neprečítané témy.

excel makra vba

v Ostatné

1

1240

04.06.2011 9:43

Forty-

V tomto fóre nie sú ďalšie neprečítané témy.

Excel - VBA - ako riesit cyklus?

v Ostatné

3

834

17.05.2018 16:11

Winnetou

V tomto fóre nie sú ďalšie neprečítané témy.

[VBA Excel] Blokovanie spustenia podprogramu

v Ostatné

0

1090

26.04.2008 22:52

Jezoo

V tomto fóre nie sú ďalšie neprečítané témy.

Použitie premennej z jedného eventu v inom evente

v Backend

1

592

09.10.2012 13:53

ThePlaky

V tomto fóre nie sú ďalšie neprečítané témy.

VBA Solver v exceli

v Ostatné

0

417

06.11.2014 2:16

lucka.x

V tomto fóre nie sú ďalšie neprečítané témy.

VBA Code pre otvorenie Word súboru inak

v Ostatné

0

970

09.03.2015 14:46

robeno67

V tomto fóre nie sú ďalšie neprečítané témy.

existencia premennej

v Backend

3

648

25.08.2008 12:45

toma-mato

V tomto fóre nie sú ďalšie neprečítané témy.

predanie premennej

v Frontend

4

1875

15.10.2009 12:20

pilná lama glama

V tomto fóre nie sú ďalšie neprečítané témy.

Odovzdavanie premennej

v Backend

11

887

05.10.2009 9:45

Tominator

V tomto fóre nie sú ďalšie neprečítané témy.

Zmena $premennej

v Backend

9

749

03.02.2010 14:55

rooobertek

V tomto fóre nie sú ďalšie neprečítané témy.

Dlzka premennej

v Frontend

7

701

10.06.2009 19:37

roach189

V tomto fóre nie sú ďalšie neprečítané témy.

vytvorenie premennej...

v Backend

6

643

24.09.2008 22:43

vl4kn0

V tomto fóre nie sú ďalšie neprečítané témy.

nazov premennej

v Frontend

6

599

07.01.2010 23:28

roach189

V tomto fóre nie sú ďalšie neprečítané témy.

deklaracia premennej

v Backend

7

1076

19.08.2009 12:14

Snacker

V tomto fóre nie sú ďalšie neprečítané témy.

[VYRIESENE] volanie premennej

v Backend

2

531

13.02.2009 13:50

beginner



© 2005 - 2026 PCforum, edited by JanoF