среда, 3 июня 2015 г.

Использование двойного цикла for to next

При форматировании документов во многих случаях удобно использовать двойной цикл for to next для того чтобы придать определенным ячейкам, срокам или столбцам какой-либо параметр или заливку. Сам макрос читается в этом случае как - пройти по всем указанным ячейкам, и если условия выполняется придать им определенное значение. Поясним на примере кода из макроса Разбивка инвентаризации для объяснительной:

Sub Cveta
'Обозначаем текущий лист и диапазон
 oSheet = ThisComponent.Sheets(0)
 oCellCursor = oSheet.createCursor()
 oCellCursor.GotoStartOfUsedArea(True)
 oCellCursor.GotoEndOfUsedArea(True)
 Start_Row = oCellCursor.getRangeAddress.StartRow
 End_Row = oCellCursor.getRangeAddress.EndRow + 1
'Указываем что программе нужно пройти от первой до последней строки с столбце 7
 For i=End_Row To Start_Row step -1
  For j=0 To 6
'Указываем искомые значение и что вернуть в случае их нахождения
  text1 = osheet.getcellbyposition(6,i).Value
   If text1 < -5000 Then
'Если значение ячейки меньше -5000 - окрасить ее в желтый цвет
    oSheet.getCellByPosition (j,i).CellBackColor = 16777113
' Если больше 5000 - окрасить ее в красный цвет
    Else if  text1 > 5000 Then
    oSheet.getCellByPosition (j,i).CellBackColor = 16750950
    End if
   End if   
   Next j
   Next i
End Sub

Рассмотрим еще пример. Функция применения автоширины на всех указанных листах для всех указанных диапазонов:

 Sub Tema
'Пройти с листа 1 по лист 4
 For j=0 To 3
 Sheet = ThisComponent.Sheets(j)
'Применить на всех этих листах для столбцов с 1 по 9 автоширину.
For I = 0 To 8
Columns = Sheet.Columns(I)
Columns.OptimalWidth = True
Next I
Next j

Задача: В файле содержащем три листа (можно одинаковых) применить для всех первых строк (заголовков) - жирный шрифт.

Комментариев нет:

Отправить комментарий