VBA - funkce se strednikem

Programy pro práci v kanceláři (Word, Excel, Access…=>Office)

Moderátor: Mods_senior

Zamčeno
simPod
Level 4
Level 4
Příspěvky: 1295
Registrován: 15 čer 2006 18:51
Kontaktovat uživatele:

VBA - funkce se strednikem

Příspěvek 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
Uživatelský avatar
X
Elite Level 12.5
Elite Level 12.5
Příspěvky: 19360
Registrován: 22 kvě 2007 11:34
Kontaktovat uživatele:

Re: VBA - funkce se strednikem

Příspěvek od X »

Pokud se nepletu zkus místo středníku &
simPod
Level 4
Level 4
Příspěvky: 1295
Registrován: 15 čer 2006 18:51
Kontaktovat uživatele:

Re: VBA - funkce se strednikem

Příspěvek 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
Uživatelský avatar
X
Elite Level 12.5
Elite Level 12.5
Příspěvky: 19360
Registrován: 22 kvě 2007 11:34
Kontaktovat uživatele:

Re: VBA - funkce se strednikem

Příspěvek od X »

Mrkni do nápovědy, tam čerpám vždy já + pokusy.
navstevnik
Level 4
Level 4
Příspěvky: 1142
Registrován: 29 srp 2008 16:49

Re: VBA - funkce se strednikem

Příspěvek 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).
simPod
Level 4
Level 4
Příspěvky: 1295
Registrován: 15 čer 2006 18:51
Kontaktovat uživatele:

Re: VBA - funkce se strednikem

Příspěvek 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
navstevnik
Level 4
Level 4
Příspěvky: 1142
Registrován: 29 srp 2008 16:49

Re: VBA - funkce se strednikem

Příspěvek 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
simPod
Level 4
Level 4
Příspěvky: 1295
Registrován: 15 čer 2006 18:51
Kontaktovat uživatele:

Re: VBA - funkce se strednikem

Příspěvek od simPod »

aha, super, dik!
Zamčeno

Zpět na „Kancelářské balíky“