Как записать макросом поиск пробела в ячейке?

Автор OOKapitan, 28 марта 2019, 17:50

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

rami

Цитата: Bigor от 29 марта 2019, 17:28цвета удобнее вначали задать константами, а потом уже использовать, через неделю
ты уже забудешь какой из этих 16776960, 15132236 И так далее зеленый, какой красный
Цвета лучше писать с помощью функции RGB, например:
color = rgb(255, 0, 0)    'красный цвет

Всё это есть в Справке.

rami

Цитата: OOKapitan от 29 марта 2019, 17:42
Цитата: Bigor от 29 марта 2019, 17:28и все это из-за лени написать служебку на установку либры
Не из-за лени - у нас столько проблем, что до Либры ни у кого не дойдут руки - максимум до Экселя.
Установка LibreOffice снимет столько проблем, что руки дойдут хоть до края вселенной.

OOKapitan

Огромнейшее всем Вам спасибо. Если не сложно, подскажите ещё, пожалуйста, в этой теме.

OOKapitan

    Как и обещал, выкладываю окончательный, по крайней мере пока (по мере использования может понадобится его дополнить - сразу вложу сюда), код:
Sub UF
Dim i&, r&, a&, b1&, b2&
oDoc=Thiscomponent
oSheet = oDoc.Sheets(i)
For r=3 to oSheet.getColumns().getByIndex(5).queryEmptyCells().getByIndex(oSheet.getColumns().getByIndex(5).queryEmptyCells().getCount()-1).getRangeAddress().StartRow-1
b1=oSheet.getCellRangeByPosition(1,r,5, r).getPropertyValue("CellBackColor")
If oSheet.getCellByPosition(5, r).String="ИСТЁК" or oSheet.getCellByPosition(5, r).String="ОТСУТСТВУЕТ" Then
   oSheet.getCellRangeByPosition(1,r,5, r).SetPropertyValue("CellBackColor", 16711680)
ElseIf VAL(LEFT(oSheet.getCellByPosition(5, r).String,20))>=6 Then
   oSheet.getCellRangeByPosition(1,r,5, r).SetPropertyValue("CellBackColor", 65280)
ElseIf VAL(LEFT(oSheet.getCellByPosition(5, r).String,20))<6 and VAL(LEFT(oSheet.getCellByPosition(5, r).String,20))>=3 Then
   oSheet.getCellRangeByPosition(1,r,5, r).SetPropertyValue("CellBackColor", 16776960)
ElseIf VAL(LEFT(oSheet.getCellByPosition(5, r).String,20))<3 and VAL(LEFT(oSheet.getCellByPosition(5, r).String,20))>=1 Then
   oSheet.getCellRangeByPosition(1,r,5, r).SetPropertyValue("CellBackColor", 15132236)
ElseIf VAL(LEFT(oSheet.getCellByPosition(5, r).String,20))<1 and VAL(LEFT(oSheet.getCellByPosition(5, r).String,20))>=0 Then
   oSheet.getCellRangeByPosition(1,r,5, r).SetPropertyValue("CellBackColor", 16750950)
End If
b2=oSheet.getCellRangeByPosition(1,r,5, r).getPropertyValue("CellBackColor")
If b2<>b1 Then
   oSheet.getCellRangeByPosition(1,r,5, r).SetPropertyValue("CharHeight", 10)                               
   oSheet.getCellRangeByPosition(1,r,5, r).SetPropertyValue("CharWeight", 150)
   oSheet.getCellRangeByPosition(1,r,5, r).SetPropertyValue("CharColor", 255)
End If
Next r
End Sub