在 Excel2007 (或各个版本的的Excel)使用过程中,当我们执行插入列、隐藏列等类似操作,有时会遇到“不能将对象移到工作表外”的提示,这是怎么一回事呢?该如何解决?

    通常来讲,有两种情况会导致“不能将对象移到工作表外”提示的出现:

    一、在插入行或列的时候出现“不能将对象移到工作表外”的提示。

    这是因为在工作表的最后一列( Excel2003 以下版为第IV(256)列,Excel2007为第XFD(16384)列,下同),或最后一行(Excel2003以下版为65536行,Excel2007为1048576行)有数据,或插入的数据使原有的数据超出工作表行或列的限制时,就会出现“不能将对象移到工作表外”的提示了。

    解决的方法就是删除不需要的行或列,或改变数据的 排列 格式。

    二、在隐藏行或列时出现“不能将对象移到工作表外”的提示。

    会出现这种提示基本都是以对象有关,比如有 批注 或者插入图形或 文本框 等,在隐藏行或列时,使对象的右侧或底部超出工作表的范围,这时就会出现“不能将对象移到工作表外”的提示。

    解决方法1:将 对象 的位置属性更改为“位置随 单元格 而变”,大小可以设定为固定或也随单元格改变。
1. 如果对象是一个单元格批注,请选择包含该批注的单元格。右键单击该单元格,然后单击“显示批注”或“显示/隐藏批注”。这样即可看到批注。 
2. 将光标移至对象的边缘,直到光标变为带有四个黑色小箭头的白色箭头光标。单击以选中该对象。 
3. 在 Microsoft office Excel 2003 及早期版本的 Excel 中,单击“格式”菜单上的“<对象名称>”。在此菜单命令中,<对象名称> 就是该对象的名称,例如“批注”或“自选图形”。

    在 Microsoft office Excel 2007 中,单击“开始”选项卡上“单元格”组中的“格式”。然后单击“设置 <对象名称> 格式”。 
4. 在“格式”对话框中,单击“属性”选项卡。 
5. 单击“位置随单元格而变”,然后单击“确定”。 
6. 如果想再次隐藏单元格批注,请右键单击该单元格,然后单击“隐藏批注”。 

    解决方法2:就是用 VBA 来批量完成上面的操作,下面这段 宏 是将当前活动工作表的所有对象的位置属性更改为“位置随单元格而变”。

Sub Excelba()
Dim s As Shape
On Error Resume Next
For Each s In ActiveSheet.Shapes
s.Placement = xlMove
Next
MsgBox “修改完成”,”
End Sub