Dobrý den. Udělal jsem takové malé makro na kopírování listu (vadí mi poměrně složité kopírování listu přes klik, zaškrtnutí políčka, vyhledání umístění ...). Makro funguje bezvadně až na jednu vadu, při zavření a násldném otevření LO zahlásí někde nějakou chybu. Snažil jsem se ledasco upravit, umístění chyby se mění, ale furt mu něco vadí. Teď naposled hlásí toto: "Při běhu Basic skriptu vnd.sun.star.script:Standard.Module1.kopiruj_aktualni_list_vedle?language=Basic&location=application došlo k chybě skriptovacího rozhraní." A to vždy při rozjedu LO, pak už to funguje správně a chyba se neobjevuje.
jako chybné řádky se objevovaly: listy = thisComponent.Sheets a když jsem to zrušil tak zase že to nezná metodu getCurrentController no a nakonec to co uvádím výše (po přesunu makra do modulu2). Nechápu co mu může vadit ...
Sub kopiruj_aktualni_list_vedle
dim doc as object, list as object, control as object', listy as object,
dim nazev as string, jmeno as string
dim pocet as integer, poradi as integer
doc = thisComponent
'listy = doc.Sheets
control = doc.getCurrentController
list = control.ActiveSheet
on error goto konec
nazev = list.name
pocet = doc.Sheets.getCount
for i = 0 to pocet - 1
if doc.Sheets.getByIndex(i).Name = nazev then
poradi = i
end if
next i
zadanijmena:
jmeno = InputBox("Zadej jméno nového listu" & chr(13) & "Při zanechání přednastavené hodnoty vytvoří nový list s příslušným indexem", "Kopírování aktuálního listu na vedlejší pozici", nazev)
if jmeno = nazev Then
goto vytvorlist
endif
If doc.Sheets.hasByName( jmeno ) Then
zadani = Msgbox("Jméno: " & jmeno & " již existuje! Chceš to ještě zkoušet?" & chr(13) & " Přerušit = ukončení" & chr(13) & " Znovu = nové zadání" & chr(13) & " Ignorovat = nový list se pojmenuje po starém s indexem", 2 , "Takhle to nepůjde")
select case zadani
case 3
exit sub
case 4
goto zadanijmena
case 5
goto vytvorlist
end select
end if
vytvorlist:
doc.Sheets.CopyByName(nazev, jmeno ,poradi + 1)
konec:
list = doc.Sheets.getByIndex(poradi + 1)
control.setActiveSheet(list)
End Sub
Editoval ludviktrnka (21. 1. 2016 14:20:26)