如何优化这个简单但可怕的实现?

Yug*_*dle 2 .net vb.net excel vba excel-vba

我基本上想要从单元格中删除公式,但希望保留计算值.

所以,我很容易实现它,它很好但很酷.(1800个电池约2分钟)

我有 :

Dim col As Excel.Range = getRange()
For Each cell In col
    cell.Value = cell.Value
Next
Run Code Online (Sandbox Code Playgroud)

我尝试对第一个单元格执行此操作,然后自动填充其余单元格,但是将第一个单元格的值复制到列中的其余单元格.

那么,我该怎么做才能让它快速..

我认为必须有一些与Autofill有关的东西应该可以解决问题.

请帮忙 !!

And*_*bel 8

有时,Excel会在更改完成后重新计算整个工作表.在执行此类操作时暂时禁用自动重新计算可以显着缩短执行时间.

根据这个论坛帖子,它可以完成:

Application.Calculation = xlManual 
 ' code here
Application.Calculation = xlAutomatic
Run Code Online (Sandbox Code Playgroud)


小智 8

如果你碰巧知道你的范围的确切地址,或者你可以得到它(可能使用getRange()?),这似乎对我来说从单元格中删除公式同时保持结果:

Worksheets("Sheet1").Range("A1:F15").Value = Worksheets("Sheet1").Range("A1:F15").Value
Run Code Online (Sandbox Code Playgroud)


Coo*_*ops 6

我注意到在玩Excel VBA时,除了几行代码之外的任何东西都可以真正拖拽,但到目前为止,"运行速度"的最大增幅是;

Sub NoScreenRePainting()
    Application.ScreenUpdating=False

    'Your code here.

    Application.ScreenUpdating=True
End Sub
Run Code Online (Sandbox Code Playgroud)

其他建议:http://www.ozgrid.com/VBA/SpeedingUpVBACode.htm