VSTOでピボットテーブルを移動しようとしましたが、まったく成功しません。私の論理は、ピボットテーブルの範囲を見つけてカットし、ワークシート上にデータが存在しないと確信する新しい範囲に貼り付けることでした。C#Excel VSTO - ピボットテーブルを移動することはできますか?
public static void MovePivotTable(string sheetName, PivotTable pivotTable, int newX, int newY, int width, int height)
{
try
{
Worksheet worksheet = GetOrCreateWorksheet(sheetName);
Range topLeft = (Range)worksheet.Cells[newX, newY];
Range bottomRight = (Range)worksheet.Cells[newX + width, newY + height];
Range newRange = worksheet.get_Range(topLeft, bottomRight);
pivotTable.TableRange1.Cut(Missing.Value);
newRange.PasteSpecial(XlPasteType.xlPasteAll, XlPasteSpecialOperation.xlPasteSpecialOperationNone,
Missing.Value, Missing.Value);
return;
}
catch (Exception)
{
}
finally
{
}
}
ただし、私はいつも例外が発生します。どちらか: - PasteSpecialに失敗しました。 - 行に沿って、ピボットテーブルを変更できないことがあります。
これまで行ったことがありますか?彼らはこれが本当に可能であるかどうかを確認できますか?任意のサンプルコード?
多くのおかげで、 ショーン
どのライブラリでExcelシートを操作していますか? –
@EmmanuelNそのVSTO。 –