2015-10-21 40 views
1

我有宏观其设置字体为整个范围的大小9:字体格式性能2007

Range("A1:Z20000").Font.Size = 9 

当我在Excel中运行它2010年或2013年,大约需要1秒钟处理(有几乎没有格式范围内)。但是,当我在Excel 2007上运行它时,需要15秒以上来处理这一行代码。我找不到任何有关这方面的文章,但显然MS修复它在较新版本的Office(Excel)中。

有没有办法在Office 2007中为大范围(500,000 +个单元格)设置字体大小而不会导致性能下降?

+0

你能忍受格式化整个列相同的字体大小这种方法吗?我发现这通常更快......即使在Excel 2007中 –

+0

在Office 2007中,如果您选择该范围并通过菜单(或字体首选项)更改字体,是否也需要那么长时间?或者当你用VBA试用它时? – BruceWayne

+0

@Excel Hero - 大约需要同一时间(20,437s/21s) –

回答

1

尝试为您的要求

Sub testformat() 

Range("A1").Font.Size = 9 

Range("A1").Copy 

Range("A1:Z20000").PasteSpecial xlPasteFormats 

Application.CutCopyMode = False 
Application.CutCopyMode = True 

End Sub 
+0

为什么在将CutCopyMode变成false后重新开启它?如果你把它放在'False'中,它会在以后使用拷贝时造成问题吗? – BruceWayne

+1

@BruceWayne正确。,Application.CutCopyMode = True对于此程序不是必需的。 – newjenn

+0

那么,你的解决方案是最快的。 'Range(“A1:Z20000”)。Font.Size = 9'需要20,437秒, 'For i = 1 To 26:Columns(i).Font.Size = 10:Next i'需要21秒, 方法需要0.359秒,我不明白为什么(因为它一般使用格式,而不仅仅是字体大小),但它至少对Office 2007 –