Синтаксическая ошибка basic переменная sid уже определена

  • Summary

  • Files

  • Reviews

  • Support

  • Mailing Lists

  • Tickets ▾

    • bugs
    • Feature Requests
    • google_tickets
  • Wiki

  • Discussion

  • Donate

Menu

#39 Не работает в LibreOffice 6.4.0.3 (x64)



Status:
closed

Owner:
nobody

Labels:
None

Updated:


2020-03-05

Created:

2020-03-04

Private:
No

В LibreOffice 6.4.0.3 (x64) не работает ни один скрипт.

Сначала:

Синтаксическая ошибка Basic.
Переменная sID уже определена.

Потом:

Синтаксическая ошибка Basic.
Переменная oDocControlFrame уже определена.

И в самом конце:

Синтаксическая ошибка Basic.
Переменная oDoc уже определена.

Discussion

  • Starikov Sergey

    Какую версию расширения Вы используете?
    В 2.57 были исправления для совместимости с LibreOffice 6.4.

  • fb2_user

    Спасибо, проверю. Просто на странице загрузки последняя версия 2.56 :)
    Да, 2.57 работает!

     

    Last edit: fb2_user 2020-03-04

  • Starikov Sergey

    • status: open —> closed
  • Starikov Sergey

    Исправил умолчательный файл.


Log in to post a comment.

Перейти к контенту

  • Summary

  • Files

  • Reviews

  • Support

  • Mailing Lists

  • Tickets ▾

    • bugs
    • Feature Requests
    • google_tickets
  • Wiki

  • Discussion

  • Donate

Menu

#39 Не работает в LibreOffice 6.4.0.3 (x64)

Status:
closed

Owner:
nobody

Labels:
None

Updated:


2020-03-05

Created:

2020-03-04

Private:
No

В LibreOffice 6.4.0.3 (x64) не работает ни один скрипт.

Сначала:

Синтаксическая ошибка Basic.
Переменная sID уже определена.

Потом:

Синтаксическая ошибка Basic.
Переменная oDocControlFrame уже определена.

И в самом конце:

Синтаксическая ошибка Basic.
Переменная oDoc уже определена.

Discussion

  • Starikov Sergey

    Какую версию расширения Вы используете?
    В 2.57 были исправления для совместимости с LibreOffice 6.4.

  • fb2_user

    Спасибо, проверю. Просто на странице загрузки последняя версия 2.56 :)
    Да, 2.57 работает!

    Last edit: fb2_user 2020-03-04

  • Starikov Sergey

    • status: open —> closed
  • Starikov Sergey

    Исправил умолчательный файл.


Log in to post a comment.

  • Печать

Страницы: [1]   Вниз

Тема: Правила BASIC не работают в макросах LibreOffice, или почему не едут лыжи?  (Прочитано 8962 раз)

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

Оффлайн
MAMOHT

Дорогому All-у доброго времени суток и года!
«Всё было хорошо пока не занялся программированием…»
                                        «МАМОНТ. Copyright 11:21 29.06.2012 г.»
Как древний виндузятник порочащий весь и вся Человечную ОС по воле судьбы был приговорён к освоению софта под Линукс. И вот, при попытке написания макросов под LibreOffice, столкнулся с такими вот траблами:

При создании книжного макроса:

Sub MyCursor
  Dim Doc As Object
  Dim Cursor As Object
  Dim sPath As String

  Doc = StarDesktop.CurrentComponent
  Cursor = Doc.Text.createTextCursor()

Вот здесь выскакивает окно сообщения с надписью: «Свойство или метод не найдены: Text»

…..........
…........
  sPath = CurDir$
  MsgBox sPath
А здесь в сообщении чётко указана моя домашняя директория, но НЕ ТА директория в которой СЕЙЧАС открыт документ.

…......
End Sub

Проблема:
Из чьей кожи надо сделать бубен и какие изучить PAS, чтобы при составлении макроса на BASIC в LibreOffice 3.5.4.2 ID сборки: 350m1(Build:2) системы Ubuntu 10.04.4 всё-таки РАБОТАЛО правило Cursor = Doc.Text.createTextCursor() и как мне получить ТУ ТЕКУЩУЮ директорию в которой сейчас открыт АКТИВНЫЙ документ?

Ожидаю конкретных, корректных без словоблудства предложений по решению этих, как-бы на чей то взгляд, проблем.
Спасибо за понимание.

« Последнее редактирование: 29 Июня 2012, 15:56:47 от Чистый »


Оффлайн
Señor_Gaga

>>Ожидаю конкретных, корректных без словоблудства предложений по решению этих, как-бы на чей то взгляд, проблем.

Если мне изменяет память — бейсик идет только для msWord.
Для ОО и LO есть свой скриптовый язык.


Оффлайн
MAMOHT

>>Ожидаю конкретных, корректных без словоблудства предложений по решению этих, как-бы на чей то взгляд, проблем.

Если мне изменяет память — бейсик идет только для msWord.
Для ОО и LO есть свой скриптовый язык.

Вторую часть КАК-БЫ проблемы КАК-БЫ решил. Правда использованием не кратчайшего пути: это КАК-БЫ проехать в Париж через Владивосток. Нашёл описание на 114 странице книги Эндрю Питоньяк (Andrew Pitonyak)OpenOffice.org pro. Автоматизация работы.

Теперь к Señor_Gaga. Здесь точно КТО-ТО ошибается!!!

Переписываю дословно окно сообщения:
«Ошибка времени выполнения BASIC.
Свойство или метод не найдены: TEXT»


Оффлайн
brij

Не могу сейчас точно ответить на Ваш вопрос, но просто вспомнил, что у Питоньяка есть много чего по макросам ЛО. Наверняка, Вам уже это известно, но все же на всякий пожарный  ;) Если дружите с английским, то здесь http://www.pitonyak.org/oo.php/ можно найти очень много полезного, особенно мне когда-то сильно помог его «Macro document» http://www.pitonyak.org/oo.php/AndrewMacro.pdf. Там кстати, есть и его еще незаконченный список параллелей с VBA. Может пригодится.


Оффлайн
Dixi257


  • Печать

Страницы: [1]   Вверх

Konstantin_F

0 / 0 / 0

Регистрация: 16.05.2015

Сообщений: 29

1

20.03.2018, 11:37. Показов 9415. Ответов 12

Метки basic, cells, openoffice (Все метки)


Здравствуйте! Написал простейший макрос в OpenOffice 4.1.5

Visual Basic
1
2
3
4
5
6
7
8
9
10
Sub Main
s=17
For i=1 To 6
    For J=1 To 24
        Cells(s. 1) = Cells(i. 1)
        Cells(s. 1) = Cells(j. 2)
        s=s+1    
    Next J
Next i
End Sub

Получил сообщение:
Ошибка времени выполнения BASIC
Переменная типа Object не установлена

При этом помечает эту строку: Cells(s. 1) = Cells(i. 1)

Что я не сделал?
Что сделать, чтобы макрос заработал?

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь

0

6507 / 4642 / 1928

Регистрация: 02.02.2014

Сообщений: 12,459

20.03.2018, 11:57

2

индексы ячеек разделяются запятыми
обратите внимание, внутри цикла в одну и ту же ячейку записываются разные данные

1

0 / 0 / 0

Регистрация: 16.05.2015

Сообщений: 29

20.03.2018, 13:45

 [ТС]

3

Исправил запятые
Теперь пишет в том же месте: Подпрограмма или функция не определена

0

Krasme

6507 / 4642 / 1928

Регистрация: 02.02.2014

Сообщений: 12,459

20.03.2018, 14:47

4

проверяйте
у меня libreoffice, не думаю, что openoffice иначе работает

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
EM  *****  BASIC  *****
 
Sub Main
Dim oSheet As Object
oSheet=thisComponent.sheets.getByName("Лист1")
 
rem нумерация идет с 0
s=0
For i=0 To 6
 For j=0 To 24
   rem вариант числа
    oSheet.getCellByPosition(3,s).Value=oSheet.getCellByPosition(0,i).Value
    rem вариант строки
    oSheet.getCellByPosition(4,s).setstring(oSheet.getCellByPosition(0,j).getstring)
  s=s+1 
 Next j
Next i
 
End Sub

1

0 / 0 / 0

Регистрация: 16.05.2015

Сообщений: 29

20.03.2018, 16:23

 [ТС]

5

Пишет: Пишет синтаксическая ошибка Basic. Ожидается Sub

0

6507 / 4642 / 1928

Регистрация: 02.02.2014

Сообщений: 12,459

20.03.2018, 16:32

6

вы полностью скопировали код?
тогда в первой строке поправьте «em» на «rem»
когда копировала кода, первую букву не зацепила

1

0 / 0 / 0

Регистрация: 16.05.2015

Сообщений: 29

21.03.2018, 11:03

 [ТС]

7

Да. Я исправил. Всё работает.
Немного не так как хотелось бы.

Получается столбец нулей и в следующем столбце значения первого столбца с пустыми ячейками.

Нужно брать в первом столбце первое значение и ставить ему в соответствие все значения из второго столбца.
Далее берем второе значение из первого столбца и т.д.

Что надо подправить в формуле?

0

6507 / 4642 / 1928

Регистрация: 02.02.2014

Сообщений: 12,459

21.03.2018, 11:12

8

будет лучше, если все-таки приложите файл с введенными значениями и образцом того, что вы хотите получить

вышеприведенный код — лишь образец того, как работать с ячейками в libreoffice. исходных данных-то у меня нет.

1

0 / 0 / 0

Регистрация: 16.05.2015

Сообщений: 29

21.03.2018, 12:07

 [ТС]

9

В файле пример.
В столбцах А и В исходные данные
В столбце D результат

0

Krasme

6507 / 4642 / 1928

Регистрация: 02.02.2014

Сообщений: 12,459

21.03.2018, 12:17

10

Лучший ответ Сообщение было отмечено Konstantin_F как решение

Решение

конкретно под ваше задание

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
REM  *****  BASIC  *****
 
Sub Main
Dim oSheet As Object
oSheet=thisComponent.sheets.getByName("Лист1")
 
rem нумерация идет с 0
s=0
For i=0 To 5
 For j=0 To 23
    rem вариант строки
    oSheet.getCellByPosition(3,s).setstring(oSheet.getCellByPosition(0,i).getstring + " " +oSheet.getCellByPosition(1,j).getstring)
  s=s+1 
 Next j
Next i
 
End Sub

1

0 / 0 / 0

Регистрация: 16.05.2015

Сообщений: 29

21.03.2018, 12:50

 [ТС]

11

Спасибо!

Всё отлично!

Подскажите где или что можно почитать, чтобы лучше разбираться в BASIC ?

0

6507 / 4642 / 1928

Регистрация: 02.02.2014

Сообщений: 12,459

21.03.2018, 13:01

12

1

0 / 0 / 0

Регистрация: 16.05.2015

Сообщений: 29

21.03.2018, 17:34

 [ТС]

13

Спасибо!

Вы мне помогли!

0

  • Remove From My Forums
  • Question

  • After a recent update from Office 2016 to Office 365. Trying to open a query in access gives the error «there was an error compiling this function. If I create a new query and include a function e.g Left, Instr, Trim- I get the error»
    There was an error compiling this function» «The Visual Basic module contains a syntax error» «Check the code, and then recompile it.  

    I moved all objects to a new database but the problems stills exists. Any advice. Thx

Answers

  • This is what has been causing the error

    Public Declare Function GetUserName Lib "advapi32.dll" _
     Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long

    Apparently the library file advapi32.dll was removed after the Windows 64bit upgrade. I removed the code and all the queries(with functions) now work.

    • Edited by

      Tuesday, August 27, 2019 6:43 PM

    • Marked as answer by
      Bukka
      Wednesday, August 28, 2019 1:39 AM
  • Remove From My Forums
  • Question

  • After a recent update from Office 2016 to Office 365. Trying to open a query in access gives the error «there was an error compiling this function. If I create a new query and include a function e.g Left, Instr, Trim- I get the error»
    There was an error compiling this function» «The Visual Basic module contains a syntax error» «Check the code, and then recompile it.  

    I moved all objects to a new database but the problems stills exists. Any advice. Thx

Answers

  • This is what has been causing the error

    Public Declare Function GetUserName Lib "advapi32.dll" _
     Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long

    Apparently the library file advapi32.dll was removed after the Windows 64bit upgrade. I removed the code and all the queries(with functions) now work.

    • Edited by

      Tuesday, August 27, 2019 6:43 PM

    • Marked as answer by
      Bukka
      Wednesday, August 28, 2019 1:39 AM

Любимая мозоль

Автор Серж, 5 июня 2013, 09:55

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

Друзья! Кто-нибудь встречался с ошибкой «Синтаксическая ошибка BASIC. Неожиданный символ: CRLF»?

Раньше мне приходилось часто ее видеть. Возникает после копирования кода из pdf или doc. Устраняется перенабором части кода и то не всегда.
Как я понимаю, связана с присутствием в коде какого-то непечатного символа.

Недавно опять встретил. Может кто сможет объяснить суть оного в более аргументированном виде.


Это одна строка разбита на две строки


+1
Это случается, когда длинные строки кода в угоду форматированию переносится со строки на строку. В редактор они так и вставляются — разными строками.
Нужно или символ подчеркивания добавить в конце первой строки, в качестве указания, что оператор еще не закончился, или просто разрыв строк удалить.
Кстати, это не единственная ошибка в этой серии. Если разрыв прошел по параметрам метода, можно нарваться и на сообщение вида «Синтаксическая ошибка BASIC. Неожиданный символ: ,.»


Да, действительно, возникает именно в местах, где текстовый редактор разделил одну строчку кода на две строки текста. Спасибо.


  • Форум поддержки пользователей LibreOffice, Apache OpenOffice

  • Главная категория

  • Basic

  • Любимая мозоль

Любимая мозоль

Автор Серж, 5 июня 2013, 09:55

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

Друзья! Кто-нибудь встречался с ошибкой «Синтаксическая ошибка BASIC. Неожиданный символ: CRLF»?

Раньше мне приходилось часто ее видеть. Возникает после копирования кода из pdf или doc. Устраняется перенабором части кода и то не всегда.
Как я понимаю, связана с присутствием в коде какого-то непечатного символа.

Недавно опять встретил. Может кто сможет объяснить суть оного в более аргументированном виде.


Это одна строка разбита на две строки


+1
Это случается, когда длинные строки кода в угоду форматированию переносится со строки на строку. В редактор они так и вставляются — разными строками.
Нужно или символ подчеркивания добавить в конце первой строки, в качестве указания, что оператор еще не закончился, или просто разрыв строк удалить.
Кстати, это не единственная ошибка в этой серии. Если разрыв прошел по параметрам метода, можно нарваться и на сообщение вида «Синтаксическая ошибка BASIC. Неожиданный символ: ,.»


Да, действительно, возникает именно в местах, где текстовый редактор разделил одну строчку кода на две строки текста. Спасибо.


  • Форум поддержки пользователей LibreOffice, Apache OpenOffice

  • Главная категория

  • Basic

  • Любимая мозоль

  • Печать

Страницы: [1]   Вниз

Тема: Правила BASIC не работают в макросах LibreOffice, или почему не едут лыжи?  (Прочитано 9551 раз)

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

Оффлайн
MAMOHT

Дорогому All-у доброго времени суток и года!
«Всё было хорошо пока не занялся программированием…»
                                        «МАМОНТ. Copyright 11:21 29.06.2012 г.»
Как древний виндузятник порочащий весь и вся Человечную ОС по воле судьбы был приговорён к освоению софта под Линукс. И вот, при попытке написания макросов под LibreOffice, столкнулся с такими вот траблами:

При создании книжного макроса:

Sub MyCursor
  Dim Doc As Object
  Dim Cursor As Object
  Dim sPath As String

  Doc = StarDesktop.CurrentComponent
  Cursor = Doc.Text.createTextCursor()

Вот здесь выскакивает окно сообщения с надписью: «Свойство или метод не найдены: Text»

…..........
…........
  sPath = CurDir$
  MsgBox sPath
А здесь в сообщении чётко указана моя домашняя директория, но НЕ ТА директория в которой СЕЙЧАС открыт документ.

…......
End Sub

Проблема:
Из чьей кожи надо сделать бубен и какие изучить PAS, чтобы при составлении макроса на BASIC в LibreOffice 3.5.4.2 ID сборки: 350m1(Build:2) системы Ubuntu 10.04.4 всё-таки РАБОТАЛО правило Cursor = Doc.Text.createTextCursor() и как мне получить ТУ ТЕКУЩУЮ директорию в которой сейчас открыт АКТИВНЫЙ документ?

Ожидаю конкретных, корректных без словоблудства предложений по решению этих, как-бы на чей то взгляд, проблем.
Спасибо за понимание.

« Последнее редактирование: 29 Июня 2012, 15:56:47 от Чистый »


Оффлайн
Señor_Gaga

>>Ожидаю конкретных, корректных без словоблудства предложений по решению этих, как-бы на чей то взгляд, проблем.

Если мне изменяет память — бейсик идет только для msWord.
Для ОО и LO есть свой скриптовый язык.


Оффлайн
MAMOHT

>>Ожидаю конкретных, корректных без словоблудства предложений по решению этих, как-бы на чей то взгляд, проблем.

Если мне изменяет память — бейсик идет только для msWord.
Для ОО и LO есть свой скриптовый язык.

Вторую часть КАК-БЫ проблемы КАК-БЫ решил. Правда использованием не кратчайшего пути: это КАК-БЫ проехать в Париж через Владивосток. Нашёл описание на 114 странице книги Эндрю Питоньяк (Andrew Pitonyak)OpenOffice.org pro. Автоматизация работы.

Теперь к Señor_Gaga. Здесь точно КТО-ТО ошибается!!!

Переписываю дословно окно сообщения:
«Ошибка времени выполнения BASIC.
Свойство или метод не найдены: TEXT»


Оффлайн
brij

Не могу сейчас точно ответить на Ваш вопрос, но просто вспомнил, что у Питоньяка есть много чего по макросам ЛО. Наверняка, Вам уже это известно, но все же на всякий пожарный  ;) Если дружите с английским, то здесь http://www.pitonyak.org/oo.php/ можно найти очень много полезного, особенно мне когда-то сильно помог его «Macro document» http://www.pitonyak.org/oo.php/AndrewMacro.pdf. Там кстати, есть и его еще незаконченный список параллелей с VBA. Может пригодится.


Оффлайн
Dixi257


  • Печать

Страницы: [1]   Вверх

Konstantin_F

0 / 0 / 0

Регистрация: 16.05.2015

Сообщений: 29

1

20.03.2018, 11:37. Показов 10254. Ответов 12

Метки basic, cells, openoffice (Все метки)


Студворк — интернет-сервис помощи студентам

Здравствуйте! Написал простейший макрос в OpenOffice 4.1.5

Visual Basic
1
2
3
4
5
6
7
8
9
10
Sub Main
s=17
For i=1 To 6
    For J=1 To 24
        Cells(s. 1) = Cells(i. 1)
        Cells(s. 1) = Cells(j. 2)
        s=s+1    
    Next J
Next i
End Sub

Получил сообщение:
Ошибка времени выполнения BASIC
Переменная типа Object не установлена

При этом помечает эту строку: Cells(s. 1) = Cells(i. 1)

Что я не сделал?
Что сделать, чтобы макрос заработал?



0



6662 / 4759 / 1985

Регистрация: 02.02.2014

Сообщений: 12,750

20.03.2018, 11:57

2

индексы ячеек разделяются запятыми
обратите внимание, внутри цикла в одну и ту же ячейку записываются разные данные



1



0 / 0 / 0

Регистрация: 16.05.2015

Сообщений: 29

20.03.2018, 13:45

 [ТС]

3

Исправил запятые
Теперь пишет в том же месте: Подпрограмма или функция не определена



0



Krasme

6662 / 4759 / 1985

Регистрация: 02.02.2014

Сообщений: 12,750

20.03.2018, 14:47

4

проверяйте
у меня libreoffice, не думаю, что openoffice иначе работает

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
EM  *****  BASIC  *****
 
Sub Main
Dim oSheet As Object
oSheet=thisComponent.sheets.getByName("Лист1")
 
rem нумерация идет с 0
s=0
For i=0 To 6
 For j=0 To 24
   rem вариант числа
    oSheet.getCellByPosition(3,s).Value=oSheet.getCellByPosition(0,i).Value
    rem вариант строки
    oSheet.getCellByPosition(4,s).setstring(oSheet.getCellByPosition(0,j).getstring)
  s=s+1 
 Next j
Next i
 
End Sub



1



0 / 0 / 0

Регистрация: 16.05.2015

Сообщений: 29

20.03.2018, 16:23

 [ТС]

5

Пишет: Пишет синтаксическая ошибка Basic. Ожидается Sub



0



6662 / 4759 / 1985

Регистрация: 02.02.2014

Сообщений: 12,750

20.03.2018, 16:32

6

вы полностью скопировали код?
тогда в первой строке поправьте «em» на «rem»
когда копировала кода, первую букву не зацепила



1



0 / 0 / 0

Регистрация: 16.05.2015

Сообщений: 29

21.03.2018, 11:03

 [ТС]

7

Да. Я исправил. Всё работает.
Немного не так как хотелось бы.

Получается столбец нулей и в следующем столбце значения первого столбца с пустыми ячейками.

Нужно брать в первом столбце первое значение и ставить ему в соответствие все значения из второго столбца.
Далее берем второе значение из первого столбца и т.д.

Что надо подправить в формуле?



0



6662 / 4759 / 1985

Регистрация: 02.02.2014

Сообщений: 12,750

21.03.2018, 11:12

8

будет лучше, если все-таки приложите файл с введенными значениями и образцом того, что вы хотите получить

вышеприведенный код — лишь образец того, как работать с ячейками в libreoffice. исходных данных-то у меня нет.



1



0 / 0 / 0

Регистрация: 16.05.2015

Сообщений: 29

21.03.2018, 12:07

 [ТС]

9

В файле пример.
В столбцах А и В исходные данные
В столбце D результат



0



Krasme

6662 / 4759 / 1985

Регистрация: 02.02.2014

Сообщений: 12,750

21.03.2018, 12:17

10

Лучший ответ Сообщение было отмечено Konstantin_F как решение

Решение

конкретно под ваше задание

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
REM  *****  BASIC  *****
 
Sub Main
Dim oSheet As Object
oSheet=thisComponent.sheets.getByName("Лист1")
 
rem нумерация идет с 0
s=0
For i=0 To 5
 For j=0 To 23
    rem вариант строки
    oSheet.getCellByPosition(3,s).setstring(oSheet.getCellByPosition(0,i).getstring + " " +oSheet.getCellByPosition(1,j).getstring)
  s=s+1 
 Next j
Next i
 
End Sub



1



0 / 0 / 0

Регистрация: 16.05.2015

Сообщений: 29

21.03.2018, 12:50

 [ТС]

11

Спасибо!

Всё отлично!

Подскажите где или что можно почитать, чтобы лучше разбираться в BASIC ?



0



6662 / 4759 / 1985

Регистрация: 02.02.2014

Сообщений: 12,750

21.03.2018, 13:01

12



1



0 / 0 / 0

Регистрация: 16.05.2015

Сообщений: 29

21.03.2018, 17:34

 [ТС]

13

Спасибо!

Вы мне помогли!



0



  • Синтаксико стилистические ошибки это
  • Синтаксико стилистические ошибки примеры
  • Синтаксико стилистические ошибки пример
  • Синоптическая ошибка на андроиде что делать
  • Синоним к слову грубая ошибка