因此,出于某种目的,我需要在excel的最后一列中插入注释。
由于我不希望用户能够看到我插入的评论,因此我尝试隐藏该列。
不知何故,它给了我一个错误“无法将对象移出工作表”
Constants.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;
我也做了一些试验:
有关如何修复它的想法吗?
答案 0 :(得分:2)
“隐藏”表格最后一栏中的评论可能不是解决原始问题的最佳方法。
您遇到了无法在代码中移除对象错误的问题,但即使您设法执行此操作,只要用户试图隐藏或插入任何列,您的用户就会面对它。
以下是Microsoft建议如何处理此问题:http://support.microsoft.com/kb/211769
由于这可能是XY issue的情况,我会建议一些解决方法。
实际上,在您的情况下,您可能 隐藏您在其他地方的评论,例如在任何隐藏的单元格中,如果您希望用户不要看到它,只是保护你的床单不受隐藏的细胞。
如果您不想保护,可以将评论存储在另一张表格中,并使用xlVeryHidden property
将其隐藏在VBA中(用户无法取消隐藏不带VBA的表格)。
答案 1 :(得分:1)
首先选择评论栏。
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;
答案 2 :(得分:0)
问题不仅在于隐藏列而且还为了减小列的宽度,同样的错误也会出现。要修复=获取评论信息,将其发布/粘贴到不同的单元格中进行保存。然后删除注释,调整列并再次为之前的单元格创建注释。对所需工作表上的每个注释执行此操作。 希望这会有所帮助,享受。 BigEEE:)