2017-02-21 111 views
0

我有一个VBA脚本,我用它来为单元格添加撇号,但我目前有200000行检查,它似乎需要相当长的时间。我正在使用的代码如下:关于如何使代码的运行速度或你知道的任何其他代码,可以更好地工作Excel VBA脚本添加撇号缓慢

Sheets("Sheet1").Select 
    myrange = "c21:c200000" 
    For Each cell In ActiveSheet.Range(myrange) 
    If cell.Value <> "" Then cell.Value = "'" & cell.Value 
    Next 

任何想法?

+1

'.NumberFormat =“@”'? – Comintern

+0

使用vbNullstring代替“”。它不会修复你的代码,但这是一个好习惯。 –

+1

另外,是否有任何理由在工作表上做这个过程?将你的范围加载到一个数组中,然后在数组上循环会更快。 –

回答

0

我不明白你想达到与单引号的,但通常,您可以通过限制范围内填补所有空白单元格,并写信给所有的人在一次:

Const DefaultString = "'" 
Dim ws As Worksheet, r As Range 
Set ws = ThisWorkbook.Sheets(1) 

Set r = ws.Range("A1:A200000") 
' Fill last cell to ensure that SpecialCells looks to complete range 
If r.Cells(r.Rows.Count, 1) = "" Then r.Cells(r.Rows.Count, 1) = DefaultString 
Set r = r.SpecialCells(xlCellTypeBlanks) 
r.Value2 = DefaultString 
+0

如果可以合理地假设*'200000 rows'*是一个现成的参考(通常是),为什么不设置'Set r = ws.Range(ws.cells (21,“C”),ws.cells(rows.count,“C”)。end(xlup))'? – Jeeped