VFP。捕获COM错误

时间:2018-10-13 10:56:03

标签: com ole visual-foxpro

从VFP程序捕获Excel COM错误。

一个程序正在使用Automation将多个大表的摘录写入Excel。 典型的说明包括:

lCell = "I1234”
.sSheet1.Range(lCell).value = cCust.Name

这通常可以正常工作,但是如果cCust.name具有诸如“ =”(Excel不喜欢)的值,则将导致OLE COM错误。 曾尝试使用TRY ..。赶上。 。 。 ENDTRY捕获此错误,但仍会报告OLE COM错误。

我想我可以找出数据中所有可能的错误并清除它们,但是有什么方法可以使Automation忽略该错误并继续(不填充字段)? 谢谢。

1 个答案:

答案 0 :(得分:0)

我将其添加为答案,因为它包含一些否则会导致混乱的代码。出现ON错误,对我来说工作正常。即:

*** Constant Group: XlSaveAction
#Define xlDoNotSaveChanges                                2
#Define xlSaveChanges                                     1

Local loExcel As Excel.Application
Local lcValue
loExcel = Createobject('Excel.Application')
loExcel.Workbooks.Add()
loExcel.ActiveWorkbook.SaveAs('c:\temp\ExcelReadTest.xlsx')
loExcel.DisplayAlerts = .F.
*loExcel.Visible = .T.
On Error lcValue = .Null.
With loExcel.ActiveWorkbook.ActiveSheet
    .Range('A5').Value = '=Like me'
    lcValue = .Range('A5').Value
    ? m.lcValue
Endwith
On Error
loExcel.ActiveWorkbook.Close(xlSaveChanges)
loExcel.Quit()