清除全部后的Excel额外列

时间:2016-04-07 19:52:51

标签: excel excel-vba vba

所以我的工作簿速度非常慢。我注意到其中一个工作表有很多额外的列(一直到XFD),但是在我选择了额外的列并删除它们或清除所有内容并保存之后,它们就不会消失。有没有其他方法摆脱额外的列?打开VBA和GUI选项。

作为参考,我有一个宏,可以在单元格上复制到其他工作表上的一堆其他单元格中。在另一张工作表上,工作表数量是工作表的4倍,运行时间约为7秒;在这个工作簿上每张需要10-15分钟。

编辑:删除列后,某些行上的某些单元格会变为黄色,但工作簿中没有任何宏引用该表格;如果我禁用宏,则单元格仍会填充黄色。

编辑2:进一步测试显示行从表格填充黄色。如果我只删除n列,则会将n列添加到工作表的末尾,并将某些行中的单元格填充为黄色。

编辑3:清除工作表上的所有内容(而不仅仅是删除的列)似乎有效,但我不知道为什么。请注意,工作表上有一个表格,当excel询问我是否要删除表格时,我选择no,因此我刷新并保留了我的内容。我也不明白带有黄色的细胞来自哪里,如果我删除细胞并将它们填满,它们就不显示,而不是删除列。

1 个答案:

答案 0 :(得分:3)

您需要使用Worksheet.UsedRange property刷新Range.SpecialCells method和/ xlCellTypeLastCell property

with worksheets("sheet1")
    debug.print .cells.specialcells(xlCellTypeLastCell).address(0,0) '<~~ XFD99
    range("AA:XFD").clear
    debug.print .cells.specialcells(xlCellTypeLastCell).address(0,0) 'no change, still XFD99
    .usedrange
    debug.print .cells.specialcells(xlCellTypeLastCell).address(0,0) 'now Z99
end with

保存工作簿也会刷新xlCellTypeLastCell属性。

相关问题