2017-05-22 1 views
0

私はキャリッジリターン値を削除するコードを持っていますが、私の望む結果を与えていますが、Excelシートを開いてマクロを実行する必要があるたびに、Excelファイルを開くことなくフォルダ内のすべてのファイルの復帰値を削除してください。Excelでキャリッジリターン値を削除するには?

Sub RemoveCarriageReturns() 
    Dim MyRange As Range 
    Application.ScreenUpdating = False 
    Application.Calculation = xlCalculationManual 

    For Each MyRange In ActiveSheet.UsedRange 
     If 0 < InStr(MyRange, Chr(10)) Then 
      MyRange = Replace(MyRange, Chr(10), "") 
     End If 
    Next 

    Application.ScreenUpdating = True 
    Application.Calculation = xlCalculationAutomatic 
End Sub 

ありがとうございました。

答えて

1

あなたが本当にここにいるのは、フォルダ内のファイルを繰り返し処理し、それらのファイルごとにサブルーチンを使用する方法です。最初の部分(反復)については、this answerを見てください。

ループ内でできることは、RemoveCarriageReturns()サブルーチンを呼び出します。現在の実装ではネストされたループがありますが、これは理想的ではありませんが、パフォーマンスのヒットが大きすぎない場合は問題ありません。あるいは、thisなどを使用して、RemoveCarriageReturns()サブルーチンをリファクタリングして内部ループを少なくすることができます。

+0

すべてこれは、フォルダ内のそれぞれのExcelファイルがまだ開いていると言います。プログラムで実行するだけです。私は元の質問にExcelファイルを開くことを望まないと言ったとしても、それは大丈夫だと仮定しています。 – istrupin

関連する問題