0

末尾の余分なテキストを削除するために、Excel で非常に単純なマクロを作成しました。コードは次のとおりです。

Sub remove_excess_names_from_part_number()
    Dim i As Integer
    Application.ScreenUpdating = False
    For i = 1 To 1000
        Cells(i, 3).Value = Left(Cells(i, 3).Value, 10)
    Next i
    Application.ScreenUpdating = True
End Sub

これがどのように簡単になるのかわかりませんが、このコード スニペットのパフォーマンスの低さに失望しています。VBA は、そのような単純なコードに対していくつかの最適化を行いませんか?

4

2 に答える 2

3

これには本当にVBAが必要ですか?必要に応じて、Excel の Text To Columns を使用できます

Excelでデータがこのようになっているとしましょう

ここに画像の説明を入力

  1. 列を選択し、[データ] | [データ] をクリックします。列へのテキスト
  2. Fixed Widthステップ 1/3 で選択
  3. ステップ 2/3 で長さを設定します。下に表示されている場合は、10
  4. [完了] をクリックすると完了です。

ここに画像の説明を入力

: 10 番目の文字が a の場合、SPACE行 2 のように切り捨てられます。

ここに画像の説明を入力

それでもVBAソリューションが必要な場合は、@assyliasが提案したように範囲全体を配列にロードし、計算の実行後に元に戻すことをお勧めします。

@Santosh は、数式を一度にすべてのセルに入力できる場合についても提案しています。非 VBA オプションが利用可能な場合は、セルに式を手動で入力し、オートフィルも実行できます:)

于 2013-09-23T10:57:14.823 に答える