Почему перестал работать макрос?

Автор maxim, 12 сентября 2015, 10:49

0 Пользователи и 1 гость просматривают эту тему.

maxim

Раньше на компьютере с Windows XP всё работало, а сейчас на ноутбуке с Windows 10 домашняя не работает
У меня OpenOffice 4.1.1, но установил Libre и тоже не работает
Пробовал также запустить другие макросы предустановленные, и тоже выдаёт ошибку
Подскажите что это может быть?

Sub Main

fName = FileOpenDialog ("Выберите файл")

ThisComponent.getSheets().getByIndex(0).setLinkUrl(fName)

End Sub

function FileOpenDialog(title as String) as String

filepicker = createUnoService("com.sun.star.ui.dialogs.FilePicker")

filepicker.Title = title

filepicker.execute()

files = filepicker.getFiles()

FileOpenDialog=files(0)

End function

rami

Цитата: maxim от 12 сентября 2015, 08:49Раньше на компьютере с Windows XP всё работало, а сейчас на ноутбуке с Windows 10 домашняя не работает...
Да, были времена... :roll:

Ошибка "Аргумент является обязательным" возникает всегда, когда не передаётся обязательный параметр. В данном случае если запустить функцию FileOpenDialog саму по себе. Избежать этого можно если убрать обязательный передающийся параметр (title) — он в пинципе не нужен.

Связь не работает потому, что макрос её назначает (по имени), но не устанавливает (по факту), по умолчанию NONE, нужно NORMAL. В прошлом, скорей всего эта связь была установлена вручную и сохранялась, а теперь слетела.

Вот исправленные макросы:Sub Main
fName = FileOpenDialog()
oSeet=ThisComponent.getSheets().getByIndex(0)
oSeet.setLinkUrl(fName)
oSeet.setLinkMode(com.sun.star.sheet.SheetLinkMode.NORMAL)
End Sub

function FileOpenDialog() as String
filepicker = createUnoService("com.sun.star.ui.dialogs.FilePicker")
filepicker.execute()
files = filepicker.getFiles()
FileOpenDialog=files(0)
End function

У меня сработало и на Apache OpenOffice 4.1.1 и на LibreOffice

maxim

Спасибо за исправление. Теперь начало появляется окно для выбора файла НО выбранный файл не загружается. ??? После выбора нового файла ничего не меняется. Я обычно выбирал файл CSV и все данные загружались на первый лист.

rami

Должно работать. Попробуйте вручную обновить связи в меню "Правка" —> "Связи..."

А документ-источник содержит данные?

maxim

да источник содержит данные. Очень странно. :-[ Связь обновил, но не помогло.


Того шаблона где у меня всё работало на XP уже нет, а этот я создал заново, но точно так же, сново перечитал на форуме всё. Странно.

maxim

Кстати связь работает! Если файл CSV изменить под тем же именем, то данные изменяются в Calc.

maxim

Как я понял этот макрос, просто менял связь на другой файл.
Посмотрите на скриншоте выше стоит галочка ОБНОВЛЯТЬ ВРУЧНУЮ а не АВТОМАТИЧЕСКИ
Может в этом дело?

rami

Попробуйте следующее:
1. откройте в офисе любой файл CSV — это позволит установить настройки импорта (они сохранятся)
2. попробуйте вручную импортировать этот файл (меню "Вставка" —> "Ссылка на внешние данные..."
А где находится источник? На компе или в дропбоксе?

rami

Цитата: maxim от 12 сентября 2015, 12:58Посмотрите на скриншоте выше стоит галочка ОБНОВЛЯТЬ ВРУЧНУЮ а не АВТОМАТИЧЕСКИ
Может в этом дело?
Должно быть вручную, автоматически — это когда устанавливается таймер для обновления.

maxim

1. Открыл, скриншот приложил
2. Попробовал, назначил новый путь, но ничего не поменялось. Кнопка ОК не активная была.

CSV у меня действительно в дропбоксе (и таблица тоже), но скопировал CSV на диск D и ничего не изменилось

rami

Попробуйте : меню "Вставка" —> "Лист из файла..." , а старый лист со старой связью можно удалить.

maxim

Да попробовал но не помогает

Обратите внимание, ведь сама связь работает! Документ CSV в начале загружаеться когда создаёшь новый лист. Если этот загруженный в начале CSV изменить, то при следующем запуске данные изменяться в таблице

maxim

Я думаю здесь дело в макросе. Ведь именно макрос должен изменить путь к другому CSV

rami

Цитата: maxim от 12 сентября 2015, 13:55Документ CSV в начале загружаеться когда создаёшь новый лист. Если этот загруженный в начале CSV изменить, то при следующем запуске данные изменяться в таблице
Когда вы "открываете" шаблон, то открывается не сам шаблон, а его копия и кажется, что "открылся" CSV-документ, но это старые данные из шаблона.

Попробуйте изменённый шаблон, но прежде загрузите в Мои макросы и диалоги в библиотеку Standard в модуль Module1 те два макроса, что я исправил в первом ответе.

maxim

#14
 Спасибо вам огромное! Всё работает как раньше!  :)
Я до конца конечно не понял причину возникших проблем, но теперь сохраню надёжно этот файл и таких проблем не будет!

Ещё раз большое спасибо Вам!  :)