Итак, у меня есть короткий фрагмент кода:
Dim rs As ADODB.Recordset
If (m_db.OpenRs(rs, sql) = True) Then
Call ClearIndivTable
shReportIndiv.ListObjects("Tb_GL_Report_Indiv").DataBodyRange(1, 1).CopyFromRecordset rs
rs.Close
End If
Я ожидаю, что строки, найденные в rs, вставят себя в таблицу.На самом деле ничего не происходит.
Использование тех же свойств для таблицы, размер которой точно совпадает с набором записей, приводит к вставке данных.
With table
If Not .DataBodyRange Is Nothing Then
.DataBodyRange.Delete
End If
If (m_db.OpenRs(rs, sql) = True) Then
Set rng = shDefective.Range(table.Range.Cells(1).Address).Offset(1, 0)
rng.CopyFromRecordset rs
End If
End With
Этот код работает.Я тоже пробовал со смещением, но это не работает.Я не подозреваю, что это проблема.
Использование того же кода, но вставка в диапазон приводит к вставке данных.Тем не менее, я пытаюсь вставить ячейку в таблицу с дополнительными формулами, но она не работает.
If (m_db.OpenRs(rs, sql) = True) Then
pOutput.Range("A13").CopyFromRecordset rs
rs.Close
End If
-Больше примеров рабочего кода
Я надеюсь провести рефакторингВсе дело в том, чтобы использовать собственные инструменты Excel в один прекрасный день ... но этот день не сегодня.
Я в основном в своем уме, как вставить эти данные.