通常来讲,有两种情况会导致“不能将对象移到工作表外提示的出现:
一、在插入行或列的时候出现“不能将对象移到工作表外的提示。
这是因为在工作表的最后一列(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 "修改完成","提示 - http://www.officeba.com.cn"
End Sub