使用 Delphi,我创建了一个包含一些数据值的 Excel 表,然后创建了一个图表:
WChart := ((ExcelApplication1.Workbooks[1].ActiveSheet) as _Worksheet).Shapes.AddChart(xl3DPie,
EmptyParam, EmptyParam,
EmptyParam, EmptyParam).Chart;
图表在工作表上正确创建。现在我想将它移动到这样的新工作表:
WChart.Location(xlLocationAsNewSheet, EmptyParam);
这会导致访问冲突。
我用谷歌搜索了很多,没有找到使用 Delphi 的示例。所有其他语言(如 VBA)都在做与我的代码等效的事情。
任何帮助表示赞赏。
编辑:
这是触发 AV 的行的汇编代码:
WChart.Location(xlLocationAsNewSheet, EmptyParam);
lea eax,[ebp-$0000019c]
call @IntfClear
push eax
lea eax,[ebp-$000001ac]
call EmptyParam
push dword ptr [ebp-$000001a0]
push dword ptr [ebp-$000001a4]
push dword ptr [ebp-$000001a8]
push dword ptr [ebp-$000001ac]
push $01
mov eax,[ebp-$14] // [ebp-$14] is WChart value
push eax
mov eax,[eax]
call dword ptr [eax+$00000198] // Supposed to call Location()
call @CheckAutoResult