jo to lze, nakopíroval jsem neutrovu podmínku a přidal oštření jakékoli chyby ukončením programu ať to nehlásí zbytečně chyby. Program se ukončí tehdy pokud narazí na buňku která nemá textový formát a neobsahuje nějak zapsané datum s časem. Provede veškeré výměny až do problematické buňky a pak se ukončí. Jaká buňka bude problematická nevím, to je potřeba vyzkoušet. Vaše údaje tak jak jste je poslal to všechny chroustá v pořádku :-)
Sub prevod_data_format()
dim muj_format
dim format_data as string
dim dokument, bunka as object
dim jazyk as new com.sun.star.lang.Locale
dokument = ThisComponent
on error goto konec
format_data = "D.M.YYYY H:MM:SS" 'zde mezi uvozovkami možno měnit formát data obdobně jako se to dělá u buňky v sešitu
muj_format = dokument.NumberFormats.queryKey( format_data, jazyk, true )
if (muj_format = - 1) then
muj_format = dokument.getNumberFormats().addNew( format_data, jazyk )
endif
vyber = dokument.currentselection 'vyber bude znamenat libovolně velký počet buněk, tedy nikoli jen jednu
list = dokument.sheets(vyber.rangeaddress.sheet)
start_radek = vyber.rangeaddress.startrow
start_sloupec = vyber.rangeaddress.startcolumn
konec_radek = vyber.rangeaddress.endrow
konec_sloupec = vyber.rangeaddress.endcolumn
for radek = start_radek to konec_radek
for sloupec = start_sloupec to konec_sloupec
bunka = list.getcellbyposition(sloupec, radek)
IF bunka.string = "" Then
GoTo Hopsasa
Else
datum = datevalue(bunka.string)
cas = timevalue(bunka.string)
bunka.value = datum + cas
bunka.NumberFormat = muj_format
End If
Hopsasa:
next sloupec
next radek
konec:
End Sub
... textový formát není podmínkou správné funkce, v buňce prostě musí být datum + čas. A pokud je ve výběru problematická buňka, program neudělá nic ... tož to jen oprava výše uvedené informace.
Editoval ludviktrnka (24. 3. 2015 20:12:56)