Přeskočit navigaci | Přeskočit na novinky

Nový videokurz na Seduo: Excel pro začátečníky

     

Jste zde: Úvodní stránka » excel » vba-listy-bunky » excel-vba-resize-offset

Offset, Resize - oblast buněk - Excel VBA


Co umí Offset a Resize, k čemu jej lze využít ve VBA Excel.

Doplněno a rozšířeno: 25.10.2014

Proč resize a offset - úvod

Resize - Offset - Excel 2010

Když je k dispozici objekt Range, k čemu pak je Offset? Máme-li nějakou oblast, můžeme se pomocí Offset přesouvat nebo přes Resize měnit velikost oblasti.

Co se dozvíte:

V ukázkových kódech představím, jak Offest a Resize prakticky využít...


Offset

Offset - aneb jak se posunout o určitý počet buněk

Offset syntaxe

.Offset(RowOffset, ColumnOffset)
  • RowOffset - posun v řádcích (0 - neposunuje se, kladné směr dolů, záporné směr nahoru)
  • ColumnOffset - posun ve sloupcích (0 - neposunuje se, kladné směr vpravo, záporné směr vlevo)

Offset - 1 řádek dolů

Dim MojeRange As Range Set MojeRange = Range("C5").Offset(1, 0) MojeRange.Select

Nebo

Dim MojeRange As Range Set MojeRange = Range("C5").Offset(1) MojeRange.Select

V dalším budu definici typu zanedbávat.

Offset - posun vpravo

Set MojeRange = Range("C5").Offset(0, 1)

Nebo

Set MojeRange = Range("C5").Offset(, 1)

Offset vlevo

Set MojeRange = Range("C5").Offset(0, -1)

nebo:

Set MojeRange = Range("C5").Offset(, -1)

Offset dolů a vpravo o několik buněk

Set MojeRange = Range("C5").Offset(3, 3)

Resize

Resize - aneb jak rozšířit oblast požadovaný počet buněk.

Resize syntaxe

Resize(RowSize, ColumnSize)
  • RowSize - rozšíření v řádcích (0 - neposunuje se, kladné směr dolů, záporné směr nahoru)
  • ColumnSize - rozšíření ve sloupcích (0 - neposunuje se, kladné směr vpravo, záporné směr vlevo)

Resize - rozšíří oblast buňek o řádky

Set MojeRange = Range("C5").Resize(3, 1)

Resize - rozšíří oblast buňek o sloupce

Set MojeRange = Range("C5").Resize(1, 3)

Resize - zmenšit oblast buňek o sloupce

Set MojeRange = Range("C5:F11").Resize(3, 3)
Microsoft Excel VBA - stahuj logo

Ke stažení

Soubor Resize, Offset - praktické příklady - Excel VBA soubor ve formátu *.xlsm ke stažení zdarma. Soubor využívá makra.


Resize - Offset - Excel 2010

Závěrem

Pokud Vás něco napadne k Offset a resize můžete uvést v komentáři.

Článek byl aktualizován: 01.11.2014 14:13

Odměna

Ušetřil vám tento web čas, peníze? Pomohl vyřešit problém? Jste ochotni poskytnout symbolickou odměnu na další rozvoj? Vybrte si formu odměny, která vám vyhovuje.


Pavel Lasák

Pavel Lasák - autor webu

Microsoft Office (Word, Excel, PowerPoint) se věnuji od roku 2006. Své vědomosti a zkušenosti dávám k dispozici na různých školeních a konzultacích, ale také na tomto webu. K dispozici na tomto webu je mnoho návodu, tipů a triků včetně desítek různých šablon.

   Pavel Lasák LinkedIn Profil    Pavel Lasák Google+ Profil    Pavel Lasák facebook Profil    Pavel Lasák twitter Profil

Doporučte tento článek přátelům

Pokud vám článek pomohl, případně si myslíte, že může pomoci i někomu dalšímu, budu rád když jej sdílením doporučíte přátelům - děkuji:



Komentáře


Bartex

Přidáno: 02.07.13 07:16

Offset vlevo je špatně. (je napsán stejně jak vpravo) Má tam být mínus. Fakturu pošlu poštou

Pavel Lasák

Přidáno: 02.07.13 20:51

To Bartex: Děkuji za opravení mého překlepu.

Jirka

Přidáno: 12.08.14 10:13

Chtěl bych vás upozornit na zapomenutou čárku. Pro odsazení vpravo i dolů o jeden sloupec či řádek máte stejný vzorec - Offset(1)

Pavel Lasák

Přidáno: 13.08.14 16:13

To Jirka: Čárka přidána. V souboru ke stažení je funkční ;)

Milan

Přidáno: 14.08.14 12:50

Rad bych se zeptal jak je to z Offsetem u filtrovaných dat. Prikaz Offset mi neignoruje skryte radky fitru a odskoci to ne na dalsi viditelnou bunku, ale na dalsi v poradi, coz je prave skryta. Da se to nejak obejit aby so skocilo na dalsi viditelnou? Diky

Pavel Lasák

Přidáno: 27.10.14 09:22

To Milan: Kód který najde další prázdný a viditelný řádek: ' najde další prázdný Aktualni_Radek = ActiveCell.Row + 1 MaxPocetRadku = 44 For i = Aktualni_Radek To MaxPocetRadku If Rows(Aktualni_Radek).Hidden = True Then Aktualni_Radek = Aktualni_Radek + 1 Else Exit For End If Next i MsgBox Aktualni_Radek Postačí doplnit o cyklus, který provede požadovaný počet z Ofsset.

David

Přidáno: 29.01.15 13:38

Dobry den, musim vam rici, ze asi po 14-ti dennim hledani po celem internetu jsem konecne nasel odpoved na vasich strankach :) Slo mi o to, abych mohl udelat paste special ve filtru, ale nedarilo se mi, ziskat adresy vyfiltrovanych radku (nebo posunovat o jeden radek, to se posouvalo bez ohledu na filtr) az jsem to vyresil podle vaseho posledniho prispevku a rad bych se o to podelil:

David

Přidáno: 29.01.15 14:13

Sub pastSpecial() Dim c As Long Dim x As Long Dim a As String Dim b As Long Dim e As String Dim g As String Selection.End(xlUp).Select a = Selection.Address b = InStr(2, a, "$") e = Left(a, b) g = Replace(e, "$", "") c = Selection.CurrentRegion.Rows.Count For x = 2 To c If Rows(x).Hidden = True Then GoTo kam Else With Range(g & x) .Copy .pasteSpecial Paste:=xlPasteValues End With End If kam: Next Application.CutCopyMode = False End Sub

David

Přidáno: 29.01.15 14:14

pardon, na potreti se snad trefim uz s tim kodem :)

Ondra

Přidáno: 01.12.15 21:22

Dobrý den, řeším problém s posunem buňky Linked Cell v TextBoxu o řádek níž po každém stisku tlačítka. Napadlo mě to řešit OffSetem, ale neznám syntaxi. Nebo je možné řešit to jiný způsobem??


Přidání nového komentáře

Poznámka: Z časových důvodu není v mých sílách zodpovědět všechny dotazy. Děkuji za pochopení.




(vlož číslo padesátpět)

Z bezpečnostních důvodu dočasně nemůžete použít HTML značky, kromě <code> a </code> (pro vkládání VBA kódu). Děkuji za pochopení.
Děkuji, za Vaše komentáře.

Za obsah komentářů neodpovídám, jelikož jsou komentáře publikovány ihned po jejich napsání čtenářem. Toto nemohu nijak ovlivnit. Přesto si vyhrazuji možnost jakýkoli neslušný komentář smazat bez udání důvodu. V komentářích si tykáme. ;-)






Sdílejte

Pomohl Vám návod?
Sdílejte na Facebooku, G+
LinkedIn...

Nové články


Newsletter

Přihlaste se odběru novinek a získejte:
Ebook zdarma -
10 kroků ke zvládnutí (Word, Excel, PowerPoint)
Šipka Kniha 3D Více o ebooku ...

TOPlist Licence Creative Commons webarchiv rss XML

Stránky o MS Office (Excel) produktu společnosti Microsoft. Neslouží jako technická podpora.
| Email na autora: pavel.lasak@gmail.com | Copyright © : Pavel Lasák 2004 - 2016 | 14461

Tento web zatím neprošel jazykovou korekturou. Beta verze redakčního systému.