< návrat zpět

MS Excel


Téma: Adresování buňky VBA rss

Zaslal/a 13.5.2015 9:42

Zdravím,
jak ve VBA adresovat zápis do buňky s použitím proměnné?

proměnné
prvnicislo = Range("H5").Value
sloupecjc = Range("H3").Value

do buňky třeba D4 by měl být zapsán vzorec s podmínkami
Cells(4,4).Select
ActiveCell.FormulaR1C1 = "=IF(R[prvnicislo+5],C[sloupecjc-5]="""","""",IF.........

Díky za radu.

Zaslat odpověď >

Strana:  « předchozí  1 2 3   další »
#025516
avatar

zac1234 napsal/a:

Tam by to bylo jasné, ale co v té části za rovnítkem : = "=" & Cells(hoa + 1, hob + 5).Address(0, 0).
Jak udělat třeba z hoa + 1 nakonec $6
Díky.


"R"&(hoa+1)&"C"&(hob+1)

Ono by nezaškodilo, keby si napísal, aký má byť ten výsledný vzorec v bunke.citovat
#025517
avatar
Alebo skús toto: Výsledok je =D4
Cells(1, 1).Formula = "=R4C4"
Cells(3, 3).Formula = "=R[" & (4 - 3) & "]C[" & (4 - 3) & "]"
Cells(5, 5).Formula = "=R4C[" & (4 - 5) & "]"
Cells(7, 7).Formula = "=R[" & (4 - 7) & "]C4"citovat
#025518
avatar
Sub zkouskamakra()
Dim hoa1 As Long

hoa = Cells(1, 1).Value
' v buňce A1 je hodnota 5

Cells(hoa, hoa).Select
'máme výchozí buňku určenou proměnlivou souřadnicí - v tomto případě _
E5, do této chci zapsat (pomocí sčítání nebo odčítání od proměnné hoa) např. $F6+G$7*$H$8_

End Subcitovat
#025520
avatar
Sub zkouskamakra()
Dim hoa1 As Long

hoa = Cells(1, 1).Value
' v buňce A1 je hodnota 5

'máme výchozí buňku určenou proměnlivou souřadnicí - v tomto případě _
E5, do této chci zapsat (pomocí sčítání nebo odčítání od proměnné hoa) např. $F6+G$7*$H$8_
Cells(hoa, hoa).Formula = "=R[" & (6 - hoa) & "]C6+R7C[" & (7 - hoa) & "]*R8C8"
End Subcitovat
#025522
avatar
Díky, ale furt se nemůžu dopracovat výsledku, níže makro :

Sub zkouskamakra()
Dim hoa As Long

hoa = Cells(1, 1).Value
' v buňce A1 je hodnota 5

Cells(hoa, hoa).Formula = "=R[" & (7 - hoa) & "]C" & (7 - hoa) & "+R" & (7 - hoa) & "C[" & (7 - hoa) & "]*R" & (7 - hoa) & "C" & (7 - hoa) & ""
' jak upravit výše uvedený řádek, aby to bylo správně? namísto =$B2+B$2*$B$2 vypíše =$B7+G$2*$B$2

End Subcitovat
#025524
avatar
Odkiaľ si zobral tú "7"?

Cells(hoa, hoa).Formula = "=R[" & 2 - hoa & "]C" & 2 & "+R" & 2 & "C[" & 2 - hoa & "]*R" & 2 & "C" & 2 & ""

ps: A prečo sa to musí zapisovať makrom? Aký to má účel?citovat
#025525
avatar
Promiň, ale snažíš se aby to pouze napsalo co chci, podle mě odpočítáváš (připočítáváš )nějakou neznámou hodnotu od proměnné hoa. Jestliže změním proměnnou hoa na 4 tak to bude zase psát =$B2+B$2*$B$2 a správně už by mělo být =$C3+C$3*$C$3 (7-4=3, buňka C3, je to pouze příklad s jednoduchou proměnnou, aby se to dobře počítalo.
Sloužit to má pro doplnění vzorců do tabulek, které mají různé rozvržení (počet sloupců a řádků).Proměnnými, je jich asi 6, vlastně určuji souřadnice, kam se to má potom vložit.

Cells(hoa, hoa).Formula = "=R[" & (7 - hoa) & "]C" & (7 - hoa) & "+R" & (7 - hoa) & "C[" & (7 - hoa) & "]*R" & (7 - hoa) & "C" & (7 - hoa) & ""

Takže znovu, jak upravit výše uvedený vzorec - aby to bylo správně. Hodnota sloupce nebo řádku je správně určená, když je to absolutní odkaz se znakem dolaru (bez hranaté závorky). Pokud je to v hranaté závorce, aby to bylo bez znaku dolaru, tak to prostě není správně. Číslo 7 (7-hoa)je tam také jako příklad, někdy to bude 1,3,5,26,100.... a bude ve skutečnosti určeno další proměnnou (třeba hoa2).citovat
#025526
avatar
V piatom(hoa=5) riadku to má byť: $B2+B$2*$B$2
A vo štvrtom(hoa=4) $B3+B$3*$B$3 ???
Ako mám vedieť, čo tam vlastne chceš?
Tá "nejaká neznáma" je číslo ktoré chceš vo výsledku.

Preto je v tomto $F6+G$7*$H$8
raz (6-hoa) teda vo výsledku chceš 6
a (7-hoa) keď vo výsledku chceš 7 (teda G je siedmy stlpec)

Ak to chceš používať v makre stále, tak by si mal najprv naštudovať, čo je to relatívne adresovanie R1C1
To môže byť aj R[-4]c[-8] teda o štyri riadky smerom hore a o osem stlpcov doľava od danej bunky určenej parametrom hoa.

http://office.lasakovi.com/excel/zaklady/relativni-absolutni-odkazy-excel/citovat
#025528
avatar
Takže problém je jak upozorňoval ELNINOSLOV :
To R1C1 (konkrétne relatívny odkaz pomocou []) mi príde úplne blbý, pretože treba myslieť nielen na premenné vo vzorcoch, ale navyše aj na konkrétne súradnice bunky, pretože do [] sa zapisuje rozdiel (posun chcenej bunky oproti aktuálne nastavovanej).

Takže moje upřesnění:
Sub zkouskamakra()
Dim hoa As Long
hoa = Cells(1, 1).Value
' v buňce A1 je hodnota 5
Cells(hoa, hoa).Formula = "=R" & (7 - hoa) & "C" & (7 - hoa) & "+R" & (7 - hoa) & "C" & (7 - hoa) & "*R" & (7 - hoa) & "C" & (7 - hoa) & ""
End Sub

Výše uvedené makro při proměnné hoa=5 zapíše do buňky E5 =$B$2+$B$2*$B$2
jak docílit toho, abych odstranil ze vzorce 2xznak dolaru - podtrženýcitovat
#025529
avatar
No možno to ELNINOSLOV pripadá blbé, ale asi niečo také ešte nikto okrem teba nepožadoval. Ak by to tak bolo, tak by microsoft určite niečo vymyslel. Stále mi nie je jasné PREČO to musíš riešiť makrom, keď to tam jednoducho ten vzorec môžeš napísať. Prípadne sa na excel vykašli a skús nejaký iný kalkulátor.
Inak nahradiť časť reťazca sa dá cez CTRL+H, prípadne makrom cez replace.
Cells.Replace What:="$B", Replacement:="B", LookAt:=xlPart, SearchOrder _
:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=Falsecitovat

Strana:  « předchozí  1 2 3   další »

Uživatelské menu

Nejste přihlášen(a)
avatar\n

Menu

Formulář Faktura

Formulář Faktura IV

Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.

Helios iNuvio

Používáte podnikový systém Helios iNuvio? Potřebujete pomoci se správou nebo vyvinout SQL proceduru? Více informací naleznete na stránce Helios iNuvio.

On-line nástroje