2017-02-21 107 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