代码如下: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的问题,不知道如何解决?谢谢大家。

解决方案 »

  1.   

    With exlapp.Sheets(1)
        .Range(.Cells(5, 1), .Cells(Sheets(1).UsedRange.rows.Count, .UsedRange.Columns.Count)).Borders.LineStyle = 1
    End With
      

  2.   

    application方法调用 global失败什么的。
      

  3.   

    第1次导入excel没有问题,而之后第2、3次……导入excel便报错如下:实时错误 '1004':对象Cells的方法 '_global'失败实际上我看了一下:之前没加为导入数据增加边框的代码:
    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肯定出错。
      

  4.   


    第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期待答复,非常感谢。
      

  5.   

    With exlapp.Sheets(1)
        .Range(.Cells(5, 1), .Cells(.UsedRange.rows.Count, .UsedRange.Columns.Count)).Borders.LineStyle = 1
    End With
      

  6.   

    哈哈,怪我简写了,我用的就是With exlapp.Sheets(1)
    .Range(.Cells(5, 1), .Cells(.UsedRange.rows.Count, .UsedRange.Columns.Count)).Borders.LineStyle = 1
    End With但错误如上。
      

  7.   

    是不是你一看到 Excel 显示出来就手工用鼠标关闭了?
    要在显示之前先设置边框。
      

  8.   


    没注意这个应放在
    exlapp.Visible = True
    的前面
      

  9.   


    细节决定成败,怪我囫囵吞枣了,应该把这段代码里的
    .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
    问题解决,深表感谢。交个朋友,给分封贴。