< návrat zpět

MS Excel


Téma: Makra - sloupec jako proměnná rss

Zaslal/a 30.8.2017 11:17

Ahoj,
potřebuji nastavit sloupec jako proměnnou, ale vůbec netuším jak. Umím to pouze u řádku. Můžete mi, prosím, někdo poradit? Předem moc děkuju.

Zaslat odpověď >

icon #037442
eLCHa
Ano, můžeme. Udělejte to stejně jako u řádků.

Vložte příklad kódu, možností je habaděj.citovat
#037444
avatar
Makro mám nastaveno, aby každý den prodloužilo vzorec o jeden řádek, ale každý měsíc začínám na novém sloupci. Takže bych potřeboval nastavit nějakou proměnnou také pro sloupec.

Zde je ukázka mého současného zápisu:

Dim řádek As Integer

Sheets("POKOJE").Select
Range("X8").Select
Selection.End(xlDown).Select

řádek = Selection.Row
Range("X" & řádek & ":X" & řádek + 1).Select
Selection.FillDowncitovat
#037448
elninoslov
Range má režim R1C1, alebo namiesto neho použite Cells(riadok,stlpec), k tomu napr. .Offset() alebo .Resize(). Skúste sa na to mrknúť vlastnými silami, no ak to nedáte, tak niekto pomôže. Keď nebudem na mobile... Jáj a ešte, ktorý riadok sa dá spoĺahlivo použiť na určenie posledného stĺpca ? Riadok 8 ?citovat
icon #037450
eLCHa
Nebudu se vás ptát proč to děláte tak, jak to děláte.

Pochybuji, že vám to funguje 2. den v měsíci, kdy xlDown musí skočit úplně dolů na listu. Ale lze provést jediným řádkem a bez proměnnéRange(Range("X8"), Range("X8").End(xlDown).Offset(1, 0)).FillDown
Píšete, že chcete pouze vyplnit vzorec, tak bych raději použilCells(Rows.Count, Range("X8").Column).End(xlUp).Offset(1, 0).Formula = Range("X8").Formula.
No a neupřesnil jste, která buňka je první a od které se má počítat, tak budu brát, že je to X8.

Takže první den v měsíci: přidání do nového sloupce a prvního řádku např.taktoCells(Range("X8").Row, Columns.Count).End(xlToLeft).Offset(0, 1).Formula = Range("X8").Formula
Ostatní dny v měsíci přidávat do posledního sloupce a nového řádkuCells(Rows.Count, Cells(Range("X8").Row, Columns.Count).End(xlToLeft).Column).End(xlUp).Offset(1, 0).Formula = Range("X8").Formula

A odpověď na vaši otázku - pokud chcete použít řádek nebo sloupec jako proměnnou, nepoužívejte Range, ale CellsCells(č. řádku, č. sloupce), pro oblast Range(Cells(č. řádku, č. sloupce), Cells(č. řádku, č. sloupce))citovat
#037451
elninoslov
Trochu sa nad tým pozastavujem, lebo neviem načo pridávať ďalší riadok každý deň. Veď keď prídem po max 31 tak musím pridať nový stĺpec každý mesiac. Teda určite nezačínam ďalší mesiac na 32-om dátovom riadku. Ja by som si vytvoril 31 riadkovú tabuľku, nešpekuloval s pridávaním riadkov a vypĺňaním vzorcov, ale vzorce by som ošetril napr. na nevypisovanie hodnoty, a pridával by som len mesiac - teda stĺpec. V prvom momente ma to netrklo, ale teraz v tom pridávaní riadkov nevidím logiku.citovat
icon #037453
eLCHa
@elninoslov
jj
já to napsal takto
Nebudu se vás ptát proč to děláte tak, jak to děláte.citovat
#037471
avatar
Moc díky. Zítra to vyzkouším a dám vědět. Zatím ahoj. PS.: Jinak je pravda, že to nefunguje zcela od prvního řádku, protože to opravdu skočí až na konec, ale to jsem ještě nezačal řešit. :) Takže moc děkuji.citovat

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