C# 尝试隐藏最后一列失败,错误为“;无法将对象移出图纸";

C# 尝试隐藏最后一列失败,错误为“;无法将对象移出图纸";,c#,excel,excel-interop,C#,Excel,Excel Interop,因此,出于某种目的,我需要在excel的最后一列中插入注释 因为我不希望用户能够看到我插入的注释,所以我尝试隐藏该列 不知怎的,它给了我一个错误“无法将对象移出工作表” 常数.cs HIDDEN_DATA_COL = 16384; // Which is last column in excel 2007 MyUtil.cs Excel.Range range = ws.get_Range(ws.Cells[1, Constants.HIDDEN_DATA_COL], ws.Cells[1,

因此,出于某种目的,我需要在excel的最后一列中插入注释

因为我不希望用户能够看到我插入的注释,所以我尝试隐藏该列

不知怎的,它给了我一个错误“无法将对象移出工作表”

常数.cs

HIDDEN_DATA_COL =  16384; // Which is last column in excel 2007
MyUtil.cs

Excel.Range range = ws.get_Range(ws.Cells[1, Constants.HIDDEN_DATA_COL], ws.Cells[1, Constants.HIDDEN_DATA_COL]);
 range.AddComment(result);
 range.Comment.Shape.Width = 50;
 range.Comment.Shape.Height = 50;
 range.EntireColumn.Hidden = true;
我还做了一些尝试:

  • 删除range.EntireColumn.Hidden,代码正常
  • 将隐藏的数据列更改为小于10也会使运行时错误消失
关于如何修复它有什么想法吗?

在工作表的最后一列中“隐藏”注释可能不是解决原始问题的最佳方法

您在代码中遇到了“无法将对象移出工作表”错误,但即使您成功地做到了这一点,用户在试图隐藏或插入任何列时也会遇到这一问题

以下是Microsoft advice如何处理此问题:


由于这可能是一个案例,我将建议一些解决方法

实际上,在您的情况下,您可能会将您的评论隐藏在其他地方,例如任何隐藏的单元格中,如果您不想让用户看到它,只需保护您的工作表不被取消隐藏单元格

如果您不想保护,可以将您的注释存储在另一个工作表中,并使用
xlVeryHidden属性将其隐藏(没有VBA,用户无法取消隐藏工作表)。

在工作表的最后一列中“隐藏”注释可能不是解决原始问题的最佳方法

您在代码中遇到了“无法将对象移出工作表”错误,但即使您成功地做到了这一点,用户在试图隐藏或插入任何列时也会遇到这一问题

以下是Microsoft advice如何处理此问题:


由于这可能是一个案例,我将建议一些解决方法

实际上,在您的情况下,您可能会将您的评论隐藏在其他地方,例如任何隐藏的单元格中,如果您不想让用户看到它,只需保护您的工作表不被取消隐藏单元格


如果不想保护,可以将注释存储在另一个工作表中,并使用
xlVeryHidden属性使用VBA将其隐藏(用户无法在没有VBA的情况下取消隐藏该工作表)。

通过先选择注释列进行修复

 range.AddComment(result);
 range.Comment.Shape.Width = 50;
 range.Comment.Shape.Height = 50;
 range.Columns.Cells.Select();
 range.Columns.EntireColumn.Select();
 range.Columns.EntireColumn.Hidden = true;

通过先选择注释列进行修复

 range.AddComment(result);
 range.Comment.Shape.Width = 50;
 range.Comment.Shape.Height = 50;
 range.Columns.Cells.Select();
 range.Columns.EntireColumn.Select();
 range.Columns.EntireColumn.Hidden = true;

问题不仅在于隐藏列,还在于减小列的宽度,同样的错误也会出现。要修复=获取注释信息,请将其张贴/粘贴到另一个单元格中保存。然后删除注释,调整列,并为之前包含注释的单元格再次创建注释。对所需工作表上的每个注释执行此操作。
希望这有帮助,享受吧。BigEEE:)

问题不仅在于隐藏列,还在于减小列的宽度,同样的错误也会出现。要修复=获取注释信息,请将其张贴/粘贴到另一个单元格中保存。然后删除注释,调整列,并为之前包含注释的单元格再次创建注释。对所需工作表上的每个注释执行此操作。 希望这有帮助,享受吧。比吉:)