错误信息:服务器出现意外情况
部分代码如下:
o_App := ComObj.CreateOleObject('Word.Application');
FApp := System.DispatchHelper.Create(o_App);
FApp.PropertyPut('Visible', [false]);
o_Docs := FApp.PropertyGet('Documents', []);
FDocs := System.DispatchHelper.Create(o_Docs);
//
FDocs.InvokeMethod('Add', []);
o_ADoc := FApp.PropertyGet('ActiveDocument', []);
FDoc := System.DispatchHelper.Create(o_ADoc);
// 添加一个5列14行的表格
o_tables := FDoc.PropertyGet('Tables', []);
tables := System.DispatchHelper.Create(o_tables);
o_Range := selection.PropertyGet('Range',[]);
range := System.DispatchHelper.Create(o_Range);
//ActiveDocument.Tables.Add Range:=Selection.Range, NumRows:=14, NumColumns :=5, DefaultTableBehavior:=wdWord9TableBehavior, AutoFitBehavior:= wdAutoFitFixed
tables.InvokeMethod('Add',[o_Range,14,5,1,0]);
// 调整表格第一列大小为50
// 设置列宽的VBA语法: Selection.Tables(1).Columns(1).SetWidth ColumnWidth:=50, RulerStyle:= wdAdjustFirstColumn
// 获取表格
o_tables2 := selection.PropertyGet('Tables', []);
tables2 := System.DispatchHelper.Create(o_tables2);
o_table := tables2.InvokeMethod('Item',[1]);
table := System.DispatchHelper.Create(o_table);
// 获取列
o_tableColumns := table.PropertyGet('Columns',[]);
tableColumns := System.DispatchHelper.Create(o_tableColumns);
o_tableColumn := tableColumns.InvokeMethod('Item',[1]);
tableColumn := System.DispatchHelper.Create(o_tableColumn);
// 设置大小
tableColumn.InvokeMethod('SetWidth',[50,0]); // 这里报错:服务器出现意外情况
// 退出
FApp.InvokeMethod('Quit', [nil, nil, nil]);
// 释放资源
(o_tableColumn as System.IDisposable).Dispose;
(o_tableColumns as System.IDisposable).Dispose;
(o_table as System.IDisposable).Dispose;
(o_tables2 as System.IDisposable).Dispose;
(o_Range as System.IDisposable).Dispose;
(o_tables as System.IDisposable).Dispose;
(o_SelectionFont as System.IDisposable).Dispose;
(o_Selection as System.IDisposable).Dispose;
(o_ADoc as System.IDisposable).Dispose;
(o_Docs as System.IDisposable).Dispose;
(o_App as System.IDisposable).Dispose; |