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