Zdravím. S VB v Excelu začínám, nicmeně mám potíž která je asi hodně podobná popsanému, ale nějak nevím jak nato. Makrem jsem si vyzobal pár číselných hodnot pod sebe a chtěl bych pod sloupec čísel vložit makrem vzorec pro sumu toho sloupce.
Funguje mi todle:
ActiveSheet.Cells(34, 11).Formula = "=Sum(K3:K30)"
Jak ale nahradit proměnnými (třeba x,y) právě ty K3 a K30?
Zkoušel jsem to i přes FormulaR1C1, ale nějak jsem se z toho taky nedostal.
Je to někde popsáno jak nahradit tyto hodnoty proměnnými?
Díky, moc.
//pravidla fóra nedovolují připojovat svůj dotaz do běžícího tématu, i když se jedná o stejný nebo podobný problém.Snižuje to přehlednost fóra a může se stát, že si tvého dotazu nikdo nevšimne.
//odděleno do nového tématu.
//mmm
vkládání vzorců ještě jednou
-
- Level 4
- Příspěvky: 1142
- Registrován: srpen 08
- Pohlaví:
- Stav:
Offline
Re: vkládání vzorců
To Ladanek: protoze dotaz byl oznacen za vyreseny, bylo zadouci zalozit novy.
Ano, lze pouzit i promenne:
Zda je to nekde popsano, nejspise v nejake prirucce, ale z logiky veci vyplyva, ze prikaz ActiveSheet.Cells(34, 11).Formula vklada retezec, takze je potreba ten retezec spolu s promennymi poskladat.
Ano, lze pouzit i promenne:
Kód: Vybrat vše
Dim a As String, b As String
a = "K3"
b = "K30"
ActiveSheet.Cells(34, 11).Formula = "=Sum(" & a & ":" & b & ")"
Zda je to nekde popsano, nejspise v nejake prirucce, ale z logiky veci vyplyva, ze prikaz ActiveSheet.Cells(34, 11).Formula vklada retezec, takze je potreba ten retezec spolu s promennymi poskladat.
Re: vkládání vzorců ještě jednou
Diky moc, taková drobnost, ale jak potěší.
Omlouvám se za nezaložení nového dotazu ...se polepším.
Omlouvám se za nezaložení nového dotazu ...se polepším.
Re: vkládání vzorců ještě jednou
Ještě taková drobnost, do buňky už se mi podařilo nacpat vzorec, nicmeně Excel jím trochu opovrhuje při zpracování.
V buňce vyskočí "#Nazev" a chybový kosočtverec - vzorec obsahuje nerozpoznaný text.
Stačí po zkončení makra na buňku klepnout a "odentrovat" v editačním řádku (=SUMA(K3:K33) - zdá se to být v pořádku)
Napadlo mě mu vnutit Enter samozřejmně se vzorcem, ale ouha.
ActiveCell.Formula = "=SUMA(" & "K" & vr & ":" & "K" & vr + rozdil - 1 & ") " & vbCr
vbCr už to nějak nechce brát.
Nesetkal se někdo s tímto? Přitom všechny hodnoty v bloku který je sumou označen jsou korektní číselné hodnoty, nebo ještě radši přetypovat?
Díky moc.
edit:
Rovnou si odpovím, podařilo se mi na to přijít. Zamikus byl v té Sumě. Má být správně napsáno SUM, ne SUMA - to Excel bere jako nějaký text, ne rezervovaný text příkazu. Měl jsem pocit že to veme český ekvivalent příkazu v řádce, ale chyba lávky zřejmně.
ActiveCell.Formula = "=SUM (" & "K" & vr & ":" & "K" & vr + rozdil - 1 & ") "
// Příspěvky sloučeny.
// Pokud chceš něco dodat a nikdo ještě po tobě nepřispěl, použij tlačítko >> Upravit << a svůj příspěvek doplň. Díky.
//mike007
V buňce vyskočí "#Nazev" a chybový kosočtverec - vzorec obsahuje nerozpoznaný text.
Stačí po zkončení makra na buňku klepnout a "odentrovat" v editačním řádku (=SUMA(K3:K33) - zdá se to být v pořádku)
Napadlo mě mu vnutit Enter samozřejmně se vzorcem, ale ouha.
ActiveCell.Formula = "=SUMA(" & "K" & vr & ":" & "K" & vr + rozdil - 1 & ") " & vbCr
vbCr už to nějak nechce brát.
Nesetkal se někdo s tímto? Přitom všechny hodnoty v bloku který je sumou označen jsou korektní číselné hodnoty, nebo ještě radši přetypovat?
Díky moc.
edit:
Rovnou si odpovím, podařilo se mi na to přijít. Zamikus byl v té Sumě. Má být správně napsáno SUM, ne SUMA - to Excel bere jako nějaký text, ne rezervovaný text příkazu. Měl jsem pocit že to veme český ekvivalent příkazu v řádce, ale chyba lávky zřejmně.
ActiveCell.Formula = "=SUM (" & "K" & vr & ":" & "K" & vr + rozdil - 1 & ") "
// Příspěvky sloučeny.
// Pokud chceš něco dodat a nikdo ještě po tobě nepřispěl, použij tlačítko >> Upravit << a svůj příspěvek doplň. Díky.
//mike007
-
- Level 4
- Příspěvky: 1142
- Registrován: srpen 08
- Pohlaví:
- Stav:
Offline
Re: vkládání vzorců ještě jednou
Ve VBA je nutno pouzit anglicky tvar pouzitych funkci listu. Bohuzel ceska lokalizace prinesla dvoji nazvy funkci - v Excelu cesky, ve VBA (Application.WorksheetFunction... ) anglicky, ve slovenske lokalizaci jsou nazvy funkci listu ponechany anglicke.
Kdo je online
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 11 hostů