Pro práci s buňkami - přímé čtení existuje podobná struktura. Jedno speciální makro Vám posílám:
Sub FindEmptyCell 'Najde poslední řádek sloupce (nyní "A")
Sheet = ThisComponent.Sheets.getByName("List1")
ColA = Sheet.Columns.getByName("A") 'načte sl A
EmptyCellRanges = ColA.queryEmptyCells() 'najde prázdnou Cell Ranges
FirstEmptyRange = EmptyCellRanges.getByIndex(0) 'načte první prázdnou - respektive poslední plnou buňku
EmptyRangeAddress = FirstEmptyRange.RangeAddress 'vytvoří rangeAdress podle nalezené prátdné
Print EmptyRangeAddress.StartRow 'vypíše hlášku
end Sub
Makro jednoduše najde poslední řádek. Hledání probíhá od prvního řádku, takže už tam musí být něco v buňce. První prázdnou buňku označí jako poslední. Existuje mnoho variant. Makro může začít od konce a najde první neprázdnou buňku - tím zjistí kde je první prázdná a jestli jsou mezery mezi prvním a tímto posledním řádkem to ignoruje. Podobně se upravují makra pro smazání prázdných řádků, nebo (a) sloupců včetně mezer ve sloupci kde se testuje, nebo také testuje jestli "prázdno" v celém řádku atd.
Jde o to, že ISEMPTY nefunguje přímo na buňce, ale na "array", tedy i na Cell.array. Takhle musíte definovat i jednotlivě buňky. Například buňka A1 se deklaruje jako (0,0,0,0), A2 (0,1,0,1), B3 (1,2,1,2). Mám makro, které maže například jen vzorce, nebo formáty, objekty kresby ap.
Takže ISEMPTY funguje na filtru za tečkou - tam kde máte například ISNUMERIC. Předchozí příspěvky byly spíš upozornění, na buňku jako Objekt funguje jen ISNUMERIC - ale i s tím raději opatrně. Aby to fungovalo obecně musí to být jako CellArray.
Editoval neutr (6. 6. 2014 04:31:13)
Moje e-mailová adresa
Pokud je Váš problém vyřešen, označte prosím svůj příspěvek za "VYŘEŠENÝ"
Zlepšíte orientaci při vyhledávání řešení JAK OZNAČIT TÉMA ZA VYŘEŠENÉ