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

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

23 Май 2017, 00:17 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Доступно и просто о работе в офисных пакетах
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: 1   Вниз
  Печать  
Автор Тема: макрос воспринимает текст как 0  (Прочитано 121 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Underrating
Новичок
*
Offline Offline

Сообщений: 4


« Стартовое сообщение: 17 Май 2017, 14:36 »

Добрый день! Столкнулся с проблемой макрос воспринимает текст как 0.
Пример: в 2 строках есть, итоговый бал и текущий. Текущий принимает значения 0,1,A а итоговый от 0 и далее. Итоговый увеличивается после того как текущий бал равен A, тут и ошибка
то что A видит как ноль и присваивает ему ноль
Код:
Sub main
Dim Doc As Object
Dim Sheet As Object
Doc = ThisComponent
Sheet = Doc.Sheets(0)

if Sheet.getcellbyposition(2,1).value=0 then
Sheet.getcellbyposition(2,1).value=1
else
if Sheet.getcellbyposition(2,1).value=1 then
Sheet.getcellbyposition(2,1).string="A"
else
if Sheet.getcellbyposition(2,2).value=0 or Sheet.getcellbyposition(2,2).value=1 and Sheet.getcellbyposition(2,1).string="A" then
Sheet.getcellbyposition(2,1).value=0
Sheet.getcellbyposition(2,2).value=0
Sheet.getcellbyposition(1,1).value=Sheet.getcellbyposition(1,1).value+1

endif
endif
endif
End Sub
Понимаю что дело в Sheet.getcellbyposition(2,1).value он распознает только число можно его заменить

* пример.ods (11.17 Кб - загружено 4 раз.)
« Последнее редактирование: 17 Май 2017, 14:38 от Underrating » Записан
economist
Ветеран
*****
Offline Offline

Сообщений: 520


« Ответ #1: 17 Май 2017, 14:53 »

Sheet.getcellbyposition(2,1).STRING

А вообще проще быть, не применять макросы там, где прекрасно работают формулы с функциями.
Записан

Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...
economist
Ветеран
*****
Offline Offline

Сообщений: 520


« Ответ #2: 17 Май 2017, 15:00 »

Такие примеры хорошо ложатся на VBA:

Код:
Option VBASupport 1
Option Compatible

Sub test()
' код от балды!
If [A2]=0 then [A2]=[A2]+1
If [A2]=1 then [A2]="A"
If [A2]="A" then [A2]=0
End sub


Если мы все почаще будем использовать в OpenOffice|LibreOffice именно VBA - разработчики плюнут и запилят
настоящую 100% объектную модель из Excel. Вот тогда Microsoft потеряет 10% всех своих доходов, и часть их перейдет разработчикам OpenOffice|LibreOffice...
     
Записан

Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...
Underrating
Новичок
*
Offline Offline

Сообщений: 4


« Ответ #3: 17 Май 2017, 15:10 »

Sheet.getcellbyposition(2,1).STRING

А вообще проще быть, не применять макросы там, где прекрасно работают формулы с функциями.
зато упрощает работу, спасибо
Записан
Страниц: 1   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!