построение отчётов

  • Автор темы velitchestvo
  • Дата начала
Статус
Закрыто для дальнейших ответов.
V

velitchestvo

#1
Строю отчёт в экселе из Лотуса. Нужно сделать границы ячеек в которые копируются данные из вьюхи чёрными линиями вокруг.
 
O

oshmianski

#2
Строю отчёт в экселе из Лотуса. Нужно сделать границы ячеек в которые копируются данные из вьюхи чёрными линиями вокруг.
Касается всего MS Office. Пишешь макрос, открываешь его в редакторе VB, смотришь код, константы и потрируешь на LS.

Range("E8").Select
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#3
В хелпе по VBA всё расписано.
Свойства Cells или Range:
.Borders.LineStyle - тип
.Borders.Weight - толщина
Можно задать стороны.
.Borders(8) - верхняя
.Borders(7) - леввая
.Borders(10) - правая
.Borders(9) - нижняя
 
V

velitchestvo

#4
Я видел макрос, просто выдаётся ошибка "Ole authomation object error"

...

Set ExcelObj = CreateObject("Excel.Application")
Set App = ExcelObj.Application

...
app.Workbooks("Отчёт по курсам.xls").activate
app.Workbooks("Отчёт по курсам.xls").Worksheets("Экзамены").Activate
Set Sheet = App.ActiveSheet

...
Set R = Sheet.Range("A3:I3")
r.Borders(xlEdgeLeft).LineStyle = xlContinuous <<< "Ole authomation object error"
r.Borders(xlEdgeLeft).Weight = xlThin
r.Borders(xlEdgeLeft).ColorIndex = xlAutomatic
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#5
Для: velitchestvo
А что такое xlContinuous, xlThin и xlAutomatic ?

и xlEdgeLeft ?
 
O

oshmianski

#6
Я видел макрос, просто выдаётся ошибка "Ole authomation object error"

...

Set ExcelObj = CreateObject("Excel.Application")
Set App = ExcelObj.Application

...
app.Workbooks("Отчёт по курсам.xls").activate
app.Workbooks("Отчёт по курсам.xls").Worksheets("Экзамены").Activate
Set Sheet = App.ActiveSheet

...
Set R = Sheet.Range("A3:I3")
r.Borders(xlEdgeLeft).LineStyle = xlContinuous <<< "Ole authomation object error"
r.Borders(xlEdgeLeft).Weight = xlThin
r.Borders(xlEdgeLeft).ColorIndex = xlAutomatic
вот рабочий вариант
Dim xlApp As Variant
Dim App As Variant
Dim xlsheet As Variant
Dim r As Variant

Set xlApp = CreateObject("Excel.Application")

With xlApp
.Workbooks.Add
Set xlsheet = .Workbooks(1).Worksheets(1)
xlsheet.Name = "Отчет"
.Visible=True
End With
Set r=xlsheet.Cells(1,2)

r.Borders(7).LineStyle = 1
r.Borders(7).Weight = 2
r.Borders(7).ColorIndex = -4105
 
O

oshmianski

#7
Вот тебе еще :)

Dim xlApp As Variant
Dim App As Variant
Dim xlsheet As Variant
Dim Selection As Variant

Const xlEdgeLeft = 7
Const xlEdgeTop = 8
Const xlEdgeBottom = 9
Const xlEdgeRight = 10
Const xlContinuous = 1
Const xlThin = 2
Const xlAutomatic = -4105

Set xlApp = CreateObject("Excel.Application")

With xlApp
.Workbooks.Add
Set xlsheet = .Workbooks(1).Worksheets(1)
xlsheet.Name = "Отчет"
.Visible=True
End With

xlApp.Range("D11:K11").Select
Set Selection = xlApp.Selection
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
 
V

velitchestvo

#8
Спасибо oshmianski!
Не знал что надо xl... как константы обозначить
 
Статус
Закрыто для дальнейших ответов.