我用excel做了一个模板。
如第一行是表头。
中间是数据,行数不定。
最后是表尾。
由于中中间的数据不定。我可能在做模板时只有一行。但在实际中,有许多行。我如何添加行,这样表尾就向下移动,而不被覆盖。最后我填充表尾的数据。
如第一行是表头。
中间是数据,行数不定。
最后是表尾。
由于中中间的数据不定。我可能在做模板时只有一行。但在实际中,有许多行。我如何添加行,这样表尾就向下移动,而不被覆盖。最后我填充表尾的数据。
Private Sub cmdExcel_Click()
On Error GoTo ErrHandler
Dim strsql As String
Dim strsql_db As String
'Dim jhje As Double
'Dim wczcje As Double
'Dim yfkje As Double
'Dim fkje As Double
If Text1.Text = "" Then
MsgBox "查询的年份不能为空!", 48, "信息"
Exit Sub
End If
If Text2.Text = "" Then
MsgBox "请查询数据!", 48, "信息"
Exit Sub
End If
Set xlapp1 = CreateObject("excel.application") 'create the excel object
xlapp1.Workbooks.Open (App.Path & "\按单位查询模板.xls") 'FileName changed
xlapp1.Workbooks("按单位查询模板.xls").Activate
xlapp1.Worksheets(1).Cells(1, 1) = Text1.Text & "年按单位统计的完成资产统计表"
strsql = Text2.Text
Set rs = ExecuteSQL(strsql, msgtext)
For i = 5 To rs.RecordCount + 4
xlapp1.ActiveSheet.Rows(i).Insert
xlapp1.Worksheets(1).Cells(i, 1) = i - 4
xlapp1.Worksheets(1).Cells(i, 2) = rs.Fields("单位名称")
xlapp1.Worksheets(1).Cells(i, 3) = rs.Fields("计划总额")
xlapp1.Worksheets(1).Cells(i, 4) = rs.Fields("完成资产金额")
xlapp1.Worksheets(1).Cells(i, 5) = rs.Fields("预付款金额")
xlapp1.Worksheets(1).Cells(i, 6) = rs.Fields("付款金额")
'jhje = jhje + rs.Fields("计划总额")
'wczcje = jhje + rs.Fields("完成资产金额")
'yfkje = jhje + rs.Fields("预付款金额")
'fkje = jhje + rs.Fields("付款金额")
rs.MoveNext
Next i
xlapp1.ActiveSheet.Rows(4).Delete
With CommonDialog1
.DialogTitle = "生成Excel"
.FileName = "*.xls"
.Filter = "(Excel)*.xls|*.xls"
.CancelError = True
.ShowSave
End With
'xlapp1.Save
xlapp1.ActiveWorkbook.SaveAs (CommonDialog1.FileName)
xlapp1.Quit
MsgBox "数据导Excel完成!", 48, "信息"
rs.Close
Set rs = Nothing
Exit Sub
ErrHandler:
'用户按了“取消”按钮
MsgBox "用户取消从Excel导出数据操作!", 48, "提示"
Exit Sub
End Sub