【发布时间】:2019-03-18 10:21:25
【问题描述】:
从 VFP 程序中捕获 Excel COM 错误。
一个程序正在使用自动化将几个大表中的摘录写入 Excel。 典型的说明包括:
lCell = "I1234”
.sSheet1.Range(lCell).value = cCust.Name
这通常可以正常工作,但如果 cCust.name 具有诸如“=”之类的值(Excel 不喜欢该值),则会导致 OLE COM 错误。 曾尝试使用 TRY ..抓住 。 . . ENDTRY 捕获此错误,但仍报告 OLE COM 错误。
我想我可以找出数据中所有可能的错误并清理它们,但是有没有办法让自动化忽略错误并继续(不填充该字段)? 谢谢你。
【问题讨论】:
-
您是否尝试使用 on error 代替?
-
感谢您的回复 Cetin。我已经试过了。但是有一个 ON ERROR 指令不会抑制 OLE COM 错误的产生。如果有人知道让自动化忽略错误的方法,我将不胜感激。
-
我添加了一个显示错误作品的示例。附带说明一下,为什么需要 .Value = ...?如果是关于传输数据,最好使用 CopyFromRecordset(或 QueryTables.Add,如果始终存在指向数据的链接)。
-
感谢塞廷。我在 ON ERROR 上做错了什么。修改了您的示例代码以适合我自己的程序,并且它有效(因此,忽略我的无效数据,很好);不再出现 OLE COM 错误。将来会调查 CopyFrom Recordset。再次感谢。
标签: com ole visual-foxpro