, так что это фрагмент процедуры, которая экспортирует набор данных из доступа в Excel
Dim rs As Recordset
Dim intMaxCol As Integer
Dim intMaxRow As Integer
Dim objxls As Excel.Application
Dim objWkb As Excel.Workbook
Dim objSht As Excel.Worksheet
Set rs = CurrentDb.OpenRecordset("qryOutput", dbOpenSnapshot)
intMaxCol = rs.Fields.Count
If rs.RecordCount > 0 Then
rs.MoveLast: rs.MoveFirst
intMaxRow = rs.RecordCount
Set objxls = New Excel.Application
objxls.Visible = True
With objxls
Set objWkb = .Workbooks.Add
Set objSht = objWkb.Worksheets(1)
With objSht
On Error Resume Next
.Range(.Cells(1, 1), .Cells(intMaxRow, intMaxCol)).CopyFromRecordset rs
.Name = conSHT_NAME
.Cells.WrapText = False
.Cells.EntireColumn.AutoFit
.Cells.RowHeight = 17
.Cells.Select
With Selection.Font
.Name = "Calibri"
.Size = 10
End With
.Rows("1:1").Select
With Selection
.Insert Shift:=xlDown
End With
.Rows("1:1").Interior.ColorIndex = 15
.Rows("1:1").RowHeight = 30
.Rows("2:2").Select
With Selection.Interior
.ColorIndex = 40
.Pattern = xlSolid
End With
.Rows("4:4").Select
With Selection.Interior
.ColorIndex = 40
.Pattern = xlSolid
End With
.Rows("6:6").Select
With Selection.Interior
.ColorIndex = 40
.Pattern = xlSolid
End With
.Rows("1:1").Select
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlMedium
.ColorIndex = xlAutomatic
End With
End With
End With
End If
Set objSht = Nothing
Set objWkb = Nothing
Set objxls = Nothing
Set rs = Nothing
Set DB = Nothing
End Sub
посмотри, где я смотрю на раскраску строк. Я хотел выбрать и заполнить (любым цветом) все остальные строки, как некоторые из этих отчетов о доступе. Я могу сделать это вручную, кодируя каждую строку, но две проблемы: 1) это больно, 2) я не знаю, что такое количество записей до руки.
Как я могу сделать код более эффективным в этом отношении, в то же время добавив счетчик записей, чтобы узнать, сколько строк нужно "пройти"
РЕДАКТИРОВАТЬ: Другой вопрос, который у меня есть, с методами выбора, которые я использую в модуле, есть ли лучший синтаксис Excel вместо этих с выборами ...
.Cells.Select
With Selection.Font
.Name = "Calibri"
.Size = 10
End With
- единственный способ выяснить, как выполнить этот кусок, но буквально каждый раз, когда я запускаю этот код, он терпит неудачу. Это говорит, что нет никакого объекта и указывает на .font .... каждый второй раз? это потому, что код плохой, или я не закрываю приложение xls в коде? если да, то как мне это сделать?
Спасибо как всегда!