为什么Excel给我错误“不能移动对象的表单”

我对Excelmacros做了一些小改动,尽pipe它在我开发的表上工作,但在类似的工作表上出错。

更改只需添加几列,按这些列对数据进行sorting,然后再将其删除。

两张纸之间唯一的区别是在表格中打开了AutoFilter这个错误。

它失败了在行上标题中提到的错误rng.Parent.Outline.ShowLevels RowLevels:=4

该错误涉及将对象移动到不可见的部分屏幕上。 例如评论或graphics对象。

在这种情况下,启用自动筛选意味着每个列都包含一个combobox,如ActiveSheets.Shapes 。 关于添加或删除新列的事情显然正在改变行为,但我不清楚为什么。

希望有一个更好的解决scheme,但我已经想出了这个解决方法,即使它不是优雅的作品。

  1. 打开AutoFilter
  2. 从工作表中删除所有形状
  3. 做处理
  4. 再次打开AutoFilter

在VBA中看起来像

 If ActiveSheet.AutoFilterMode = True Then ActiveSheet.AutoFilterMode = False Dim s As Shape For Each s In ActiveSheet.Shapes s.Delete Next End If 

做一些有趣的事情…

 If autoFilter = True Then rng.autoFilter End If