Komentáře Jak na řádky a sloupce v makrech

user avatar Franta
Odpovědět
Jak na řádky a sloupce v makrech
25. 11. 2015, 11:56:19
Dobrý den
Nepotřebuji hledat v celém sešitu,ale ve sloupci nebo řádku.
zatím jsem to nikde nenašel.
děkuji Franta
user avatar neutr
Odpovědět
Re:Jak na řádky a sloupce v makrech
25. 11. 2015, 13:39:44
Víte Search descriptor (to co uvádá Daniel) je opravdu rychlý. Najde start a End úsek v sešitě, což jsou sloupce a řádky - například A1:Z1023. Systémem "metelsku blesku" najde hledané a nahradí dle zadání.

Je samozřejmé, že někdy je potřeba jen vybarvit, nebo sečíst počet výskytů a podobné záležitosti. To se dá také udělat descriptorem.

Já mám osobně nepříjemný dojem, že Daniel práci nestačil, nebo nemohl ap. - dokončit. Dnes v podstatě podobné téma (prakticky stejné ale v plné šíři) zpracovává Eduard Boldižár. Ale asi uplyne hodně dílů (díl za 2 týdny) nežli se dopracuje k descriptoru a podobným věcem.

Ale můžete dát dotaz do fóra. Nejméně Vám já osobně odpovím. Mám několikero maker na bázi descriptoru, ale mám i takové, která hledají jen v jediném sloupci (řádku). Descriptor pracuje s array (proto ta rychlost) ale můžeme hledat i relativně pomaleji například pomocí While.., Do.., For.. a podobně.
user avatar lp.
Odpovědět
Jak na řádky a sloupce v makrech
25. 11. 2015, 23:30:38
Tak vytvoř search/replace descriptor nad jiným objektem, třeba řádkem nebo sloupcem, pro range:

CellRange = Sheet.getCellRangeByPosition(2,1,5,1)
Descript = CellRange.createSearchDescriptor()
user avatar Franta
Odpovědět
Jak na řádky a sloupce v makrech
27. 11. 2015, 10:32:39
Dobrý den
Něco jsem poskládal ale nefunguje to kde jsem udělal chybu?
sub vyhledej_0123456789_mazat
dim document, dispatcher, vyber as Object
Dim sloupec2
doc = ThisComponent
list = doc.sheets(0)
sloupce = List.columns
'Sloupek C
sloupec2 = sloupce.getByIndex(2)
hledej=sloupec2.CreateReplaceDescriptor
hledej.SearchRegularExpression = True
hledej.SearchString = "0123456789"
hledej.ReplaceString = ""
sloupec2.ReplaceAll(hledej)
end Sub
moc děkuji Franta
user avatar neutr
Odpovědět
Jak na řádky a sloupce v makrech
27. 11. 2015, 13:06:51
Otestujte tohle. Nesmíte ale zapomenout, že hledáte string. Problém s hledáním čísel není, ale normálně se uvozující nula nezobrazuje takže abyste našel 0123456789 tak to musí být text '0123456789, nebo "0123456789".

sub vyhledej_0123456789_mazat
'Sheet = ThisComponent.Sheets.getByName("List1") 'varianta deklarace
Sheet = ThisComponent.Sheets.getByIndex(0)
CellRange = Sheet.getCellRangeByPosition(1,0,1,100000) 'array B1:B100001
'To CellRange můžete nahradit čímkoliv třeba tím Vaším sloupcem
Descript = CellRange.createSearchDescriptor()
hledej=CellRange.CreateReplaceDescriptor
hledej.SearchRegularExpression = True
hledej.SearchString = "0123456789"
hledej.ReplaceString = ""
CellRange.ReplaceAll(hledej)
end Sub

Když zadáte opravdu číslo, tak potom zapište :
hledej.SearchString = 123456789

Jinak tohle je opravdu na Fórum - sem tyhle dotazy nepatří.
user avatar petouf
Odpovědět
Jak na řádky a sloupce v makrech
12. 11. 2019, 14:19:11
Jenom k té šířce: OptimalWidth a né OptimalWeight :-D
Stálo mě to 2 hodiny pokusomylů...
Ale stejně mě to nefunguje. Pevná šířka ano, ale když dám optimal tak se mě sloupce ani nehnou... No jdu bádat :-)
Jinak dík autorovi za bezva návody. A nevíte někdo, kde se nechá sehnat kompletní dokumentace k Basicu (nejlépe v Č.J.) pro makra v CALCu?
user avatar lodovi
Odpovědět
Jak na řádky a sloupce v makrech
12. 06. 2021, 18:34:59
Příklad list.columns.removeByIndex(1,1) je trochu nešťastný proto, že není dobře poznat, na které pozici v závorce je počet sloupců a na které je pozice vkládaného sloupce. Navíc s popisu dále to vypadá jako obráceně. Na prvním místě je pozice, na druhém místě je počet: list.columns.removeByIndex(4,2) - na čtvrtou pozici vkládám 2 sloupce.
user avatar lodovi
Odpovědět
Jak na řádky a sloupce v makrech
12. 06. 2021, 18:41:09
... samozřejmě mělo list.columns.insertByIndex(4,2), ale pro remove to platí stejně :-)
 
 
woo jaw demo hz