VB读写excel出错

z_jzhao 2010-03-15 02:53:49
些问题并非每次都出现,有时运行又是正常,当报错时,重新运行又正常,程序代码如下

Private Sub Command1_Click()

Dim sn As Integer '行数变量
Dim ex As Object
Dim exwbook As Object
Dim exsheet As Object

sn = 1
Shell ("taskkill /f /im excel.exe") '将内存中的运行excel关闭
Set ex = CreateObject("Excel.Application") '创建EXCEL应用类
Set exwbook = Nothing
Set exsheet = Nothing
If Dir("H:\work\Test Program\data\PMF.xls") = "" Then '判断EXCEL是否存在,不存在就创建
Set exwbook = ex.Workbooks().Add
Else
Set exwbook = ex.Workbooks.Open("H:\work\Test Program\data\PMF.xls") '如果文件存在,打开EXCEL工作簿,此行有时报错,见报错提示2
End If
ex.Visible = False '设置EXCEL不可见
Set exsheet = exwbook.Worksheets("sheet1") '打开EXCEL工作表

Do While ex.Cells(sn, 1) <> "" '依次判断第一列的单元格是否为空,不为空光标向下移一格,直至为空时追加数据,此行有时会报错,如报错提示1
sn = sn + 1
Loop

'''''''''''''''''''''''''''''''写入数据
ex.Cells(sn, 1) = sn
ex.Cells(sn, 2) = Date
ex.Cells(sn, 3) = Time '给单元格第sn行,第3列赋值

'''''''''''''''''''''''''''''''''''''''
exwbook.RunAutoMacros (xlAutoOpen)
ex.DisplayAlerts = False
exwbook.SaveAs "H:\work\Test Program\data\PMF.xls" '一般的数据保存格式
exwbook.Saved = True
exwbook.Close
ex.Quit
MsgBox "追加数据完成,退出EXCEL"
End Sub



错误提示1:自动化错误
错误提示2:实时错误'42',远程服务器不存在或不能使用


请各位指教!



...全文
120 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
king06 2010-03-16
  • 打赏
  • 举报
回复
ex.Quit
Set ex = Nothing
z_jzhao 2010-03-16
  • 打赏
  • 举报
回复
可以直接复制上述代码运行一行便知,出错并非每次都出现.但一直接找不出原因,望指教!
liulang0808 2010-03-16
  • 打赏
  • 举报
回复
帮着顶了。
以前用过,不过好久不用了,基本忘记了。
leiyingyesno 2010-03-15
  • 打赏
  • 举报
回复
路过,不会哦
贝隆 2010-03-15
  • 打赏
  • 举报
回复
学习。。。。。。。。。。。。。。。。。。。。。。
舉杯邀明月 2010-03-15
  • 打赏
  • 举报
回复
可能是老鸟说的那种原因。
luofenghen 2010-03-15
  • 打赏
  • 举报
回复
完了之后数据要清空 excel要关闭
guyehanxinlei 2010-03-15
  • 打赏
  • 举报
回复
确保对象使用完毕及异常出现后,得到正常释放。
苍狼传说 2010-03-15
  • 打赏
  • 举报
回复
最后是这样,用一个空文件做模板,然后使用上述办法操作,完成之后调用保存就可以了,肯定成功。
苍狼传说 2010-03-15
  • 打赏
  • 举报
回复
'可以这样的,后面的用法一样。

Dim oExcel As Object
Set oExcel = GetObject("c:\1.xls")

Tiger_Zhao 2010-03-15
  • 打赏
  • 举报
回复
整个 taskkill 的执行时间是不确定的,很可能你创建的 Excel 实例也被强制关闭了。
你应该正确释放 Excel 对象,而不是考虑用 taskkill 强制关闭进程。

2,462

社区成员

发帖
与我相关
我的任务
社区描述
VBA(Visual Basic for Applications)是Visual Basic的一种宏语言,是在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。
社区管理员
  • VBA
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧