gpt4 book ai didi

C# Excel VSTO - 可以移动数据透视表吗?

转载 作者:太空宇宙 更新时间:2023-11-03 11:28:37 28 4
gpt4 key购买 nike

我试图在 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
{
}
}

但是我总是遇到异常。任何一个:- 选择性粘贴失败。- 类似于不可能修改数据透视表。

有人做过吗?他们能否确认这确实可能或不可能?有示例代码吗?

非常感谢,肖恩

最佳答案

两件事:

TableRange1 不包含数据透视表的表头,所以这就是您收到“无法修改”错误的原因。使用 TableRange2 选择整个数据透视表。

此外,您不能对 Cut 执行 PasteSpecial,因此只需使用 Cut 方法的 Destination 参数即可。这是它在 VB 中的样子:

pivotTable.TableRange2.Cut Destination:=NewRange

关于C# Excel VSTO - 可以移动数据透视表吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8564738/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com