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

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

5 Апрель 2020, 20:15 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Вы можете задать вопрос по LibreOffice или Apache OpenOffice без регистрации, используя форму
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: « 1 2 3 4 5 6 7 8 »   Вниз
  Печать  
Автор Тема: Выполнить поиск на странице макросом  (Прочитано 22287 раз)
0 Пользователей и 1 Гость смотрят эту тему.
OOKapitan
Форумчанин
***
Offline Offline

Сообщений: 465


« Ответ #45524: 28 Февраль 2018, 17:40 »

выложи правленный
вот:
Код:
Sub Proverka_documentov
Dim desc, oFind, s, a, r, k, b, c, d
oDoc=ThisComponent
a=InputBox("Введите номер", "Параметры поиска")
If a="" Then Exit Sub
For i=1 To 6
oSheet = oDoc.Sheets(i)
desc=oSheet.createSearchDescriptor()
desc.SearchRegularExpression=false
desc.SearchString=a   'Что найти
desc.SearchWords=true      'Ячейку целиком
oFind=oSheet.findAll(desc)
If Not IsNull(oFind) Then
Exit For
Else
Print "Документ не найден"
Exit Sub
End If
s=oFind.RangeAddresses(0)
r=s.StartRow
k=s.StartColumn
If oFind.getByIndex(0).getRows().IsVisible=False then
Print "Документ не найден"
Exit Sub
End If
If oSheet.getCellByPosition (k+5, r).Value="Восстановлен" Then
Print "Документ уже восстанвлен"
Exit Sub
Else
   If oSheet.getCellByPosition (k+5, r).Value="" Then
      If MsgBox("Проверить реквизиты?", 4, "Параметры проверки")=7 Then
      d=InputBox("Введите статус", "Статус документа")
      If d="" Then Exit Sub
      oSheet.getCellByPosition (k+5, r).Value=d
      Exit Sub
      End If
   End If
End If
b=MsgBox(oSheet.getCellByPosition (k+1, r).String, 4, "Проверьте дату!")
c=MsgBox(oSheet.getCellByPosition (k+4, r).String, 4, "Проверьте сумму!")
If b=7 or c=7 Then
   If MsgBox(oSheet.getCellByPosition (k+5, r).String, 4, "Проверьте статус!")=7 Then
      If oSheet.getCellByPosition (k+5, r).Value<>"" Then
      Print "Неправильно заполнены реквизиты документа!"
      Exit Sub
      End If
   d=InputBox("Введите статус", "Статус документа")
   If d="" Then Exit Sub
   oSheet.getCellByPosition (k+5, r).Value=d
      If MsgBox ("Изменить дату?", 4, "Параметры восстановления")=7 Then
      Exit Sub
      Else
      oSheet.getCellByPosition (k+6, r).Value=Now
      End If
   Else
   Exit Sub
   End If
Else
   oSheet.getCellByPosition (k+5, r).Value="Восстановлен"
   oSheet.getCellByPosition (k+6, r).Value=Now
End If
Next i
End Sub
Записан
Страниц: « 1 2 3 4 5 6 7 8 »   Вверх
  Печать  
 
Перейти в:  

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