为什么 FreezePane 仅适用于第一个 sheet?
Why does FreezePane only work on the first sheet?
我的这段代码运行良好,将 FreezePane 添加到第 7 行第 3 列 sheet(从左数起):
private void FreezePane(int rowNum, int colNum)
{
Range cellToFreeze = (Range)_xlSheet.Cells[rowNum, colNum];
cellToFreeze.Activate();
cellToFreeze.Application.ActiveWindow.FreezePanes = true;
}
添加另外一对 sheet 之后(第二个 sheet 包含数据作为枢轴 table 的来源,第三个 sheet 包含枢轴 table), 我想在 third/pivot Table sheet 的相同位置添加一个 freezepane,所以我尝试了这个:
private void FreezePanePivotTable(int rowToFreeze, int colToFreeze)
{
Range pivotTableCellToFreeze = (Range)_xlPivotTableSheet.Cells[rowToFreeze, colToFreeze];
pivotTableCellToFreeze.Activate();
pivotTableCellToFreeze.Application.ActiveWindow.FreezePanes = true;
}
尽管如此,它因“范围 class 的激活方法失败异常来源:Microsoft Office Excel 而崩溃
异常 StackTrace:在 System.RuntimeType.ForwardCallToInvokeMember(..."
所以我想,"maybe you can only have one frozen pane in a workbook" 并尝试只调用新方法(让第一个 sheet 未冻结),我得到了这个看似奇怪的错误消息:“无法设置字体的大小 属性class"
发生此异常的位置是 second sheet - sheet 3/PivotTable [=38] 的源数据=]!为什么突然设置字体大小会出现问题?第3418行是下面的最后一行:
var itemCodeLabelCell = _xlPivotDataSheet.Cells[1, 1];
itemCodeLabelCell.Value2 = "ItemCode";
itemCodeLabelCell.Style.WrapText = false;
itemCodeLabelCell.Style.Font.Size = 12;
是否有不同的规则适用于在主要(第一个)sheet 和其他上添加冻结窗格,或者冻结窗格和 PivotTables 不能共存,还是什么?
SomeSheet.SomeRange.Activate()
如果 SomeSheet 尚未激活则失败,因此可能 "Activate method of Range class failed".
您必须先激活 sheet:
_xlPivotTableSheet.Activate();
pivotTableCellToFreeze.Activate();
我的这段代码运行良好,将 FreezePane 添加到第 7 行第 3 列 sheet(从左数起):
private void FreezePane(int rowNum, int colNum)
{
Range cellToFreeze = (Range)_xlSheet.Cells[rowNum, colNum];
cellToFreeze.Activate();
cellToFreeze.Application.ActiveWindow.FreezePanes = true;
}
添加另外一对 sheet 之后(第二个 sheet 包含数据作为枢轴 table 的来源,第三个 sheet 包含枢轴 table), 我想在 third/pivot Table sheet 的相同位置添加一个 freezepane,所以我尝试了这个:
private void FreezePanePivotTable(int rowToFreeze, int colToFreeze)
{
Range pivotTableCellToFreeze = (Range)_xlPivotTableSheet.Cells[rowToFreeze, colToFreeze];
pivotTableCellToFreeze.Activate();
pivotTableCellToFreeze.Application.ActiveWindow.FreezePanes = true;
}
尽管如此,它因“范围 class 的激活方法失败异常来源:Microsoft Office Excel 而崩溃 异常 StackTrace:在 System.RuntimeType.ForwardCallToInvokeMember(..."
所以我想,"maybe you can only have one frozen pane in a workbook" 并尝试只调用新方法(让第一个 sheet 未冻结),我得到了这个看似奇怪的错误消息:“无法设置字体的大小 属性class"
发生此异常的位置是 second sheet - sheet 3/PivotTable [=38] 的源数据=]!为什么突然设置字体大小会出现问题?第3418行是下面的最后一行:
var itemCodeLabelCell = _xlPivotDataSheet.Cells[1, 1];
itemCodeLabelCell.Value2 = "ItemCode";
itemCodeLabelCell.Style.WrapText = false;
itemCodeLabelCell.Style.Font.Size = 12;
是否有不同的规则适用于在主要(第一个)sheet 和其他上添加冻结窗格,或者冻结窗格和 PivotTables 不能共存,还是什么?
SomeSheet.SomeRange.Activate()
如果 SomeSheet 尚未激活则失败,因此可能 "Activate method of Range class failed".
您必须先激活 sheet:
_xlPivotTableSheet.Activate();
pivotTableCellToFreeze.Activate();