Нужно сделать выгрузку данных в Excel. Для этого
- Код: Выделить всё
Dim xlr As Excel.RangeDim xlr As Excel.Range
xlr.Range("A2").CopyFromRecordset TData1.Recordset
При включении компьютера, при первом запуске процедуры выгрузки в приложении – все ОК. При последующей выгрузке в этом открытом приложении происходит ошибка:
Error 1004 : Method 'Cells' of object '_Global' failed
Закрываю приложение, запускаю заново, дальнейшая выгрузка происходит без ошибок и в первый, и в последующие разы.
Как убрать ошибку?
На всякий случай привожу код всей процедуры выгрузки данных в Excel
- Код: Выделить всё
Private Sub mnuSaveRepXLS_Click()
On Error GoTo Er
Dim Cols As TrueOleDBGrid80.Columns
Set Cols = TDBGrid1.Columns
Dim i, C As Byte
Dim xla As New Excel.Application
Dim xlb As New Excel.Workbook
Dim xls As New Excel.Worksheet
Dim xlr As Excel.Range
xla.ODBCTimeout = 60
MousePointer = vbHourglass
Set xlb = xla.Workbooks.Add
Set xls = xlb.Worksheets.Add
xls.Activate
xlb.Saved = False
'Позицируем курсор на листе для вставки в нужное место
Set xlr = xls.Cells(1, 1)
'Для вставки всего динамического набора
If TData1.Recordset.BOF = False Then
TData1.Recordset.MoveFirst
'Вставка рекордсета в лист
xlr.Range("A2").CopyFromRecordset TData1.Recordset 'Ошибка - здесь
TData1.Recordset.MoveFirst
End If
For i = 0 To Cols.Count - 1
C = i + 1
'Задаем имя столбца
xls.Cells(1, C) = Cols.Item(i).DataField
Set xlr = xls.Cells(1, C)
'Выделяем верхнюю строку полужирным шрифтом
xlr.Select
xlr.Font.Bold = True
Next i
MousePointer = vbDefault
xla.Visible = True
'Предварительный просмотр
'xla.ActiveWindow.SelectedSheets.PrintPreview
Exit Sub
Er:
MsgBox "Error " & Err.Number & ": " & Err.Description, vbOKOnly + vbCritical, "Error"
End Sub