これを行う方法は他にもありますが、一般的に最も簡単な方法は、大きな行番号を選択して (20,000 行を超えることはありますか?)、上に移動することです。
Range("H2", Range("H20000").End(xlUp)).NumberFormat = "General"
Range("G2", Range("G20000").End(xlUp)).NumberFormat = "General"
ただし、列全体をフォーマットすることもできます。
Range("G:H").NumberFormat = "General"
これは (最近では) ファイルのサイズには影響しません。
シートのボタンをクリックしてマクロを実行したいので、フォーム コントロール、ボタンを使用すると、コードは標準モジュールになります。
追加(私のコメントから):
これはうまくいきます:
Application.Intersect(ActiveSheet.UsedRange, Range("G:H")).NumberFormat = "General"
ただし、これらの範囲が交差しない場合に備えて、エラー処理が必要です。
コメントでさらに 2 つの質問に答える:
Worksheets("Whatever").Activate
列に適用されない場合NumberFormat
は、干渉する何か他のことが起こっている必要があります。または、インポート時にデータに問題があった可能性があります (?) 。試す:
Application.CalculateFull
または、特定の範囲を使用します。
Range("..").Calculate
これが機能しない場合は、データを空白の列にコピーして、古い列を削除する必要があります。または、おそらくコピーして同じ範囲に貼り付けます(おそらく値)。