6

A1:Z50のようなデータがありますが、VBAを使用してA5:X50のみを削除したいと思います(セル全体をドラッグしたり使用したりするよりもはるかに高速だと思いますclickA5+shift+clickX50+delete)。これどうやってするの ?

次に、セルをロックして、セルが修正またはクリアされないようにする方法は?

4

3 に答える 3

18

次のコードを含むマクロを定義できます。

Sub DeleteA5X50()   
    Range("A5:X50").Select
    Selection.ClearContents
end sub

マクロを実行すると、アクティブなワークシートで範囲A5:x50が選択され、その範囲内のセルのすべての内容がクリアされます。

数式をそのまま残すには、代わりに次を使用します。

Sub DeleteA5X50()   
    Range("A5:X50").Select
    Selection.SpecialCells(xlCellTypeConstants, 23).Select
    Selection.ClearContents
end sub

これにより、最初にコンテンツをクリアすることに関心のあるセルの全範囲が選択され、次に、Excelが「定数」と見なすものを含むセルのみが含まれるように選択がさらに制限されます。

これをExcelで手動で行うには、セルの範囲を選択し、「f5」を押して「移動」ダイアログボックスを表示し、「特殊」ボタンをクリックして「定数」オプションを選択し、「OK」をクリックします。

于 2013-01-18T08:27:35.027 に答える
5

これを試して

Sheets("your sheetname").range("A5:X50").Value = ""

使用することもできます

ActiveSheet.range
于 2013-01-18T08:24:17.803 に答える
2

VBAの方が速いかどうかはわかりません-通常のExcelプログラムでそれを行う最も速い方法は次のとおりです。

  1. Ctrl-G
  2. A1:X50 Enter
  3. Delete

これを非常に頻繁に行う必要がない限り、VBA コードを入力してからトリガーするのはより手間がかかります。

数式または値のみを削除する場合は、挿入Ctrl-G, Alt-Sして [特別な場所に移動] を選択し、ここで [数式] または [値] を選択します。

于 2013-01-18T09:36:02.147 に答える