Zobrazit předchozí téma :: Zobrazit následující téma |
Autor |
Zpráva |
Ghastly Orc

Založen: 23. 05. 2004 Příspěvky: 182
|
Zaslal: ne červen 25, 2006 11:47 am Předmět: Excel VBA |
|
|
Z úplně jiného sudu :
Do práce si potřebuji udělat takovou pomůcku a z toho důvodu jsem se potopil hlouběji do Excelu a do psaní funkcí ve VBA.
Zatím metodou pokus omyl zkoumám principy a chci se zeptat na následující - v této jednoduché funkci (po zmáčknutí tlačíta načte hodnotu buňky a zapíše jí na přesně určené místo) mi samozřejmě nefunguje ta červeně zvýrazněná část:
Sub tlaèítko1_Klepnout()
Dim x As Integer
Dim y As Integer
Dim z As String
z = List5.Range("D4").Value
x = List5.Range("D6").Value
y = List5.Range("D8").Value
List5.Range("F"+y & 3 + x).Value = z
Beep
End Sub
Prosím poraďte amatérovi jak "vybrat" sloupec vzdálený o y políček od sloupku "F" ?
Děkuji za info. _________________ Ghastly, Adept Spolku, tulák a dobrodruh |
|
Návrat nahoru |
|
 |
Ursus Titán

Založen: 22. 04. 2004 Příspěvky: 1560 Bydliště: Na tomto světě už nebydlí
|
Zaslal: po červen 26, 2006 10:27 am Předmět: |
|
|
Tady máš "F" jako písmeno a y jako číslo. Nemůžeš sčítat písmeno a číslo. A VBA nepochopí, že se chceš posunout o y políček od f.
Možnosti jsou 2. Buď napřed F převedeš na číslo, přičteš y, a pak to vrátíš zpátky na písmeno.
dim sloupec as string
dim sloup as integer
sloup = asc("F") + y
sloupec = chr(sloup)
EDIT: Pokud to bude vždy F, pak můžeš vlastně napsat jen
dim sloupec as string
dim sloup as integer
sloup = 6+y
sloupec = chr(sloup)
Nebo je druhá možnost, asi takto:
activecell.offset(6+y,3+x).value = z
6 je tak proto, že F je 6. v abecedě. Problém druhého řešení, že když to budeš spouštět, musí být vybraná buňka A1 (tedy ta úplně nahoře), jinak se to celé rozhází, respektive posune. _________________ Spoléhat na druhé je vždy ponižující, ale nemít nikoho, na něhož byste se mohli spolehnout, je ještě horší.
John Wyndham - Den trifidů |
|
Návrat nahoru |
|
 |
Ghastly Orc

Založen: 23. 05. 2004 Příspěvky: 182
|
Zaslal: po červen 26, 2006 5:11 pm Předmět: |
|
|
Super, děkuji moc za radu.
Provizorně jsem to včera vyřešil přetransformováním "označení sloupků" jako hodnoty řádků v jednom sloupku - což už jsem adresovat uměl.
Vím, že je to hooodně "přes hlavu", ale funguje to spolehlivě a já to potřeboval hned
Ale podle tvého způsobu je to samozřejmě daleko lepší, takže k tomu sednu a předělám to.
Tohle
sloup = asc("F") + y
sloupec = chr(sloup)
jsem právě nikde nenašel a to byl ten problém.
Ještě jednou děkuji za pomoc. _________________ Ghastly, Adept Spolku, tulák a dobrodruh |
|
Návrat nahoru |
|
 |
Stillwater Velkej Drak

Založen: 16. 09. 2005 Příspěvky: 1103 Bydliště: The WatchTower of Britain - !!!
|
Zaslal: po červen 26, 2006 5:27 pm Předmět: |
|
|
Ursus napsal: |
. A VBA nepochopí, že se chceš posunout o y políček od f. |
Svete div se, ale ten ten novej (office 12, 2007) uz jo, pouziva v odkazech totiz relativni pozici vzhledem k aktualni bunce. _________________ Smrt nad Zlato!!!
Stillwater, necromancer, člen Spolku |
|
Návrat nahoru |
|
 |
Ursus Titán

Založen: 22. 04. 2004 Příspěvky: 1560 Bydliště: Na tomto světě už nebydlí
|
Zaslal: st červen 28, 2006 8:37 am Předmět: |
|
|
Stillwater napsal: |
Ursus napsal: |
. A VBA nepochopí, že se chceš posunout o y políček od f. |
Svete div se, ale ten ten novej (office 12, 2007) uz jo, pouziva v odkazech totiz relativni pozici vzhledem k aktualni bunce. |
Fakt? Že bych ho zkusil? Já všechno pracuji s Office 2000, tak se omlouvám, jsem 100 let za opicema. Napřed jsem to používal kvůli škole (přece jenom bylo lepší mít přesně to, co měli oni), pak škola koupila 2003, ale mě se už nechtělo přeinstalovávat. Moje stařičké 2000 mi vyhovují.
EDIT:
to Ghastly: Vůbec nemáš zač. Jsem rád, že alespoň 1x v životě využiju něco, co jsem se učil 2 roky a z čeho jsem mimo jiné skládal maturitní zkoušku. Už jsem myslel, že se s VBA nikdy nesetkám (a to jsem maturoval před měsícem).  _________________ Spoléhat na druhé je vždy ponižující, ale nemít nikoho, na něhož byste se mohli spolehnout, je ještě horší.
John Wyndham - Den trifidů |
|
Návrat nahoru |
|
 |
|
|
Nemůžete odesílat nové téma do tohoto fóra Nemůžete odpovídat na témata v tomto fóru Nemůžete upravovat své příspěvky v tomto fóru Nemůžete mazat své příspěvky v tomto fóru Nemůžete hlasovat v tomto fóru
|
|