Stránka 1 z 1

VBA - funkce se strednikem

Napsal: 31 říj 2010 16:33
od simPod
zdravim

potrebuju ve VBA udelat neco jako

Kód: Vybrat vše

 range("A1").Value = "=concatenate(" + Chr(34) + "test" + Chr(34) + ";" + Chr(34) + "test2" + Chr(34) + ")"


kdyz si vyhodim MsgBox, tak je tam =concatenate("test";"test") takze ten string mam asi dobre, ale hazi mi to runtime error 1004 (Application-defined or object-defined error) pri vkladani do bunky


"=concatenate(" + Chr(34) + "test" + Chr(34) + ";" + Chr(34) + "test2" + Chr(34) + ")" - error 1004
"=concatenate(" + Chr(34) + "test" + Chr(34) + ")" - bez problemu

proc to nema rado ten strednik?
dik

btw: nechci "test"+";"+"test2" bez concatenate, vim ze to tak funguje

Re: VBA - funkce se strednikem

Napsal: 31 říj 2010 17:18
od X
Pokud se nepletu zkus místo středníku &

Re: VBA - funkce se strednikem

Napsal: 31 říj 2010 20:25
od simPod
to jakoby funguje, dik
ale udela to tohle =CONCATENATE("test"&"test2")
coz je sice funkci, ale "test"&"test2" se porad rovna [text1]
ja potrebuji nejak dostat strednik, aby "test2" mohl byt [text2]

ja zkousel strednik nahradit it Chr(59), ale nefunguje

Re: VBA - funkce se strednikem

Napsal: 31 říj 2010 21:20
od X
Mrkni do nápovědy, tam čerpám vždy já + pokusy.

Re: VBA - funkce se strednikem

Napsal: 31 říj 2010 21:46
od navstevnik
Pokud jsem porozumel, tak radek kodu bude takovyto:

Kód: Vybrat vše

ActiveSheet.Range("a1").Formula = "=CONCATENATE(""test1"",""test2"")"

1. nutno pouzit vlastnost Formula
2. Ve VBA je nutno ve vkladanem vzorci pouzit tvar odpovidajici anglicke lokalizaci Excelu, tedy anglicke nazvy funkci - v pripade lokalizovanych nazvu funkci, napr.: SVYHLEDAT, to musi byt anglicky nazev funkce VLOOKUP a oddelovace jsou "," (carka), desetinny oddelovac je "." (tecka).

Re: VBA - funkce se strednikem

Napsal: 01 lis 2010 00:23
od simPod
super, to funguje, dik
jeste dotaz, co kdyz chci misto "test1" pouzit promennou test1?
zkousel jsem

Kód: Vybrat vše

ActiveSheet.Range("a1").Formula = "=CONCATENATE("test1",""test2"")"


a prej mam spatne syntax

Re: VBA - funkce se strednikem  Vyřešeno

Napsal: 01 lis 2010 08:18
od navstevnik
Uvedom si, co uvedeny radek kodu vykonava - pouze vlozi do bunky vzorec, ktery je nasledne interpretovan Excelem, nikoliv VBA. A ten vzorec musi splnovat syntaxi vzorce v bunce - ve vzorci musi byt hodnoty nebo vzorec musi odkazovat na bunku, matici,... nebo (a to je resenim) na pojmenovanou oblast; dost tezko tedy vzorec v bunce bude akceptovat promennou z VBA.

Vloz do listu pojmenovanou oblast test1 , odkaz na: ="test1" a potom radek kodu ve VBA bude:

Kód: Vybrat vše

ActiveSheet.Range("a1").Formula = "=CONCATENATE(test1,""test2"")"

a v bunce vysledek: test1test2

Re: VBA - funkce se strednikem

Napsal: 01 lis 2010 22:28
od simPod
aha, super, dik!