1
用Delphi改變圖表位置,創建一個excel工作表的一些數據值,然後我創建圖表:在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
您可以更具體地瞭解訪問衝突嗎? (什麼是具體的消息,包括涉及的內存地址?)另外,試圖將圖表移動到與創建它的代碼相關的代碼的位置在哪裏?是 –
您是否嘗試給新的工作表命名(而不是EmptyParam)? –
訪問衝突是「異常類$ C0000005,消息'0x00080004訪問衝突:讀取地址0x00080004',我提到的兩行只是一個接一個地使用表名不會改變任何內容 – fpiette