2016-04-07 75 views
0

所以我有一本非常慢的工作手册。我注意到其中一张纸张有大量额外的列(一直到XFD),但是,当我选择了额外的列并删除它们或清除所有内容并保存后,它们不会消失。有没有其他方式来摆脱额外的列?同时打开VBA和GUI选项。全部清除Excel后的额外列

仅供参考,我有一个宏可以将单元格复制到其他单元格中的一堆其他单元格中。在另一张工作簿上,张数为4倍,需要7秒钟才能运行;在此工作簿上,每张纸需要10-15分钟。

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

编辑2:进一步的测试表明,行从表中填充黄色。如果我只删除n列,然后n列被添加到工作表的末尾,某些行中的单元格填充为黄色。编辑3:清除工作表上的所有内容(而不仅仅是被删除的列)似乎工作,但我不知道为什么。请注意,表格中有一张表格,当excel询问我是否想要删除表格时,我选择了no,因此我刷新并保存了内容。我也不明白黄色细胞是从哪里来的,如果我删除细胞并填满它们,而不是删除这些列,它们就没有出现。

+1

您的宏可以通过优化它,并且无需连接到工作表中的行或列总数,从而加快宏的速度。您可以发布它,让用户帮助您更快地提高 – user3598756

+0

我不关心宏观速度,一切都很慢;复制粘贴花费了几分钟时间,而宏就做了很多。我需要删除已管理的多余行,但我想知道它们是如何显示的,以便我可以阻止这种情况再次发生。 –

+0

我并没有深入到excel中,肯定给你正确的答案。所以这里有一些猜测:工作表代码窗格中的代码?条件格式? – user3598756

回答

3

您需要刷新Worksheet.UsedRange property和或Range.SpecialCells methodxlCellTypeLastCell 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属性。

+0

看起来很有前途;将不会回到办公室,直到周五,将确认然后 –

+0

测试和证明亚当。 – Jeeped