2017-05-27 11 views
0

は、新たな情報が必要なとき、私は単に新しいタブにワークシートのコピーを作成します。これでExcelのシートを作成しました。しかし、私はそれはようになり、私は特定のセルをクリアしたり、データを入力するためにそれらを消去することを可能にするコードを持っている:私は新しいページを作成し、そのページ内のセルをクリアしようとすると、コードに問題があるExcelシートのコピーを作成します。

Sub Clear_Cells() 

Range("B5").ClearContents 
Range("C5").ClearContents 
Range("D5").ClearContents 
Range("E5").ClearContents 
Range("F5").ClearContents 
Range("B8").ClearContents 
Range("C8").ClearContents 
Range("E8").ClearContents 
Range("C9").ClearContents 
Range("C13").ClearContents 
Range("C14").ClearContents 
Range("D13").ClearContents 
Range("D14").ClearContents 
Range("E15").ClearContents 
Range("B18").ClearContents 
Range("C18").ClearContents 
Range("D18").ClearContents 
Range("E18").ClearContents 
Range("F18").ClearContents 
End Sub 

問題があること元のページのセルを常にクリアします。私はそれが単純なものでなければならないことを知っていますが、それに指を置くことはできません。

+0

あなたが値をクリアしようとしているワークシートへの参照を作成する必要があります。クリアタスクを実行する前に –

+0

使用 'シート( "NewSheet")。SELECT'または'ワークシート( "NewSheet")。Activate'。 – lkdhruw

+0

あなたの新しいシートの名前が "Sheet4"だから、内容をクリアするための正しい参照は 'Sheets(" Sheet4 ")でなければなりませんRange(" B5 ")。ClearContents' –

答えて

0

私はこのようなあなたのコードを再記述します。「SHEET_NAME」はクリアしたいセルとシートの名前がある

Sub Clear_Cells() 
Dim sht As Worksheet 
Dim rng As Range 

    Set sht = ThisWorkbook.Worksheets("Sheet_Name") 
    Set rng = sht.Range("B5,C6,D8,F18")  'add whatever cells you need to clear 

    rng.ClearContents 
End Sub 

+0

は私が空白のスプレッドシートのマスターコピーで、その後、ユーザーはマスターシートのコピーを作成し、情報を記入することができますしたいしたいです。次に、ユーザーは新しいシートを作成するためにコピーのコピーを作成する必要があります。私はすべての新しいシートタブを左側にしたいので、この方法が必要です。彼らはコピーのコピーを作成するときにだから私は、彼らが新たなデータで入力できるように以前の情報を削除するには、ボタンをクリックする必要があります。 – accrewchief

関連する問題