代码如下:Dim exlapp As New Excel.Application
Dim exlbook As Excel.Workbook
Dim exlsheet As Excel.Worksheet'省去很多有关rs的内容
……
Set rs = cmd.Execute()
…… Set exlapp = New Excel.Application
exlapp.Workbooks.Open App.Path & "\密度表2.xlt"
'Set mydb = Workspaces(0).OpenDatabase(App.Path & "\book.mdb") '打开数据库
'Set rs = mydb.OpenRecordset("rkd", dbOpenTable) '打开表
Dim rows As Integer
Dim sum As Double
rows = 5
sum = 0
If rs.RecordCount > 0 Then
'将数据库信息添加到Excel表中
While Not rs.EOF
With exlapp.Sheets(1)
.Cells(rows, 1) = rs.Fields("出库日期")
.Cells(rows, 2) = rs.Fields("出库数量")
.Cells(rows, 3) = rs.Fields("出库密度1")
.Cells(rows, 4) = rs.Fields("出库密度2")
.Cells(rows, 5) = rs.Fields("加权合计")
.Cells(rows, 6) = rs.Fields("油温")
sum = sum + rs.Fields("出库数量")
' .Cells(rows, 10) = rs.Fields("经手人")
' .Cells(rows, 11) = rs.Fields("票号")
rs.MoveNext
rows = rows + 1
End With
Wend
exlapp.Sheets(1).Cells(rows, 1) = "合计"
exlapp.Sheets(1).Cells(rows, 2) = sum
exlapp.Visible = True
Else
MsgBox "没有数据!"
End If
'为导入数据增加边框边框
Range(Cells(5, 1), Cells(Sheets(1).UsedRange.rows.Count, Sheets(1).UsedRange.Columns.Count)).Borders.LineStyle = 1
Set exlapp = Nothing
Set exlbook = Nothing
Set exlsheet = Nothing
End Sub
问题就出在最后那几行的:'为导入数据增加边框边框
Range(Cells(5, 1), Cells(Sheets(1).UsedRange.rows.Count, Sheets(1).UsedRange.Columns.Count)).Borders.LineStyle = 1第一次导excel没有问题,再导一次excel就会出现问题。我发现是用了range的问题,不知道如何解决?谢谢大家。
Dim exlbook As Excel.Workbook
Dim exlsheet As Excel.Worksheet'省去很多有关rs的内容
……
Set rs = cmd.Execute()
…… Set exlapp = New Excel.Application
exlapp.Workbooks.Open App.Path & "\密度表2.xlt"
'Set mydb = Workspaces(0).OpenDatabase(App.Path & "\book.mdb") '打开数据库
'Set rs = mydb.OpenRecordset("rkd", dbOpenTable) '打开表
Dim rows As Integer
Dim sum As Double
rows = 5
sum = 0
If rs.RecordCount > 0 Then
'将数据库信息添加到Excel表中
While Not rs.EOF
With exlapp.Sheets(1)
.Cells(rows, 1) = rs.Fields("出库日期")
.Cells(rows, 2) = rs.Fields("出库数量")
.Cells(rows, 3) = rs.Fields("出库密度1")
.Cells(rows, 4) = rs.Fields("出库密度2")
.Cells(rows, 5) = rs.Fields("加权合计")
.Cells(rows, 6) = rs.Fields("油温")
sum = sum + rs.Fields("出库数量")
' .Cells(rows, 10) = rs.Fields("经手人")
' .Cells(rows, 11) = rs.Fields("票号")
rs.MoveNext
rows = rows + 1
End With
Wend
exlapp.Sheets(1).Cells(rows, 1) = "合计"
exlapp.Sheets(1).Cells(rows, 2) = sum
exlapp.Visible = True
Else
MsgBox "没有数据!"
End If
'为导入数据增加边框边框
Range(Cells(5, 1), Cells(Sheets(1).UsedRange.rows.Count, Sheets(1).UsedRange.Columns.Count)).Borders.LineStyle = 1
Set exlapp = Nothing
Set exlbook = Nothing
Set exlsheet = Nothing
End Sub
问题就出在最后那几行的:'为导入数据增加边框边框
Range(Cells(5, 1), Cells(Sheets(1).UsedRange.rows.Count, Sheets(1).UsedRange.Columns.Count)).Borders.LineStyle = 1第一次导excel没有问题,再导一次excel就会出现问题。我发现是用了range的问题,不知道如何解决?谢谢大家。
.Range(.Cells(5, 1), .Cells(Sheets(1).UsedRange.rows.Count, .UsedRange.Columns.Count)).Borders.LineStyle = 1
End With
Range(Cells(5, 1), Cells(Sheets(1).UsedRange.rows.Count, Sheets(1).UsedRange.Columns.Count)).Borders.LineStyle = 1
时,点了关闭excel文件后进程里就没有excel进程了,所以第2、3……次导excel也正常,
而加了上面那段代码后,即便关闭了excel文件,进程里还有excel进程的存在,所以再把数据导入excel肯定出错。
第1次导入excel没有问题,而之后第2、3次……导入excel便报错如下:实时错误 '1004':对象Cells的方法 '_global'失败实际上我看了一下:之前没加为导入数据增加边框的代码:
.Range(.Cells(5, 1), .Cells(Sheets(1).UsedRange.rows.Count, .UsedRange.Columns.Count)).Borders.LineStyle = 1
时,点了关闭excel文件后进程里就没有excel进程了,所以第2、3……次导excel也正常,
而加了这段代码后,即便关闭了excel文件,进程里还有excel进程的存在,所以再把数据导入excel肯定出错。同时我点击报错界面的调试按钮之后,鼠标也定位到:
.Range(.Cells(5, 1), .Cells(Sheets(1).UsedRange.rows.Count, .UsedRange.Columns.Count)).Borders.LineStyle = 1期待答复,非常感谢。
.Range(.Cells(5, 1), .Cells(.UsedRange.rows.Count, .UsedRange.Columns.Count)).Borders.LineStyle = 1
End With
.Range(.Cells(5, 1), .Cells(.UsedRange.rows.Count, .UsedRange.Columns.Count)).Borders.LineStyle = 1
End With但错误如上。
要在显示之前先设置边框。
没注意这个应放在
exlapp.Visible = True
的前面
细节决定成败,怪我囫囵吞枣了,应该把这段代码里的
.Range(.Cells(5, 1), .Cells(Sheets(1).UsedRange.rows.Count, .UsedRange.Columns.Count)).Borders.LineStyle = 1
改为
.Range(.Cells(5, 1), .Cells(.UsedRange.rows.Count, .UsedRange.Columns.Count)).Borders.LineStyle = 1
问题解决,深表感谢。交个朋友,给分封贴。