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
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ě.
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:
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
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ří.
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?
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.