2016-08-12 17 views
0

これは正しい構文を得られないようです。私は行4から列の最後のセルまで列AからHをクリアするVBAスクリプトを書いてみたいと思います。Excel VBAで特定の列の列をクリアします

行を消去するにはどうすればよいですか?これを変更して、すべての列ではなく、A列からH列にのみ適用するにはどうすればよいですか?

答えて

1

使用

Sheets("BAC").Range("A4:H" & Sheets("BAC").UsedRange.Rows.Count).ClearContents 
Sheets("JPM").Range("A4:H" & Sheets("JPM").UsedRange.Rows.Count).ClearContents 
Sheets("CITI").Range("A4:H" & Sheets("CITI").UsedRange.Rows.Count).ClearContents 
2

これはあなたのためにそれを行います。

Sub clearRowsAtoH() 

Dim i As Integer 

For i = 1 To 8 

    Sheets("BAC").range(Sheets("BAC").Cells(4, i), Sheets("BAC").Cells(Rows.count, i).End(xlUp)).ClearContents 
    Sheets("JPM").range(Sheets("JPM").Cells(4, i), Sheets("JPM").Cells(Rows.count, i).End(xlUp)).ClearContents 
    Sheets("CITI").range(Sheets("CITI").Cells(4, i), Sheets("CITI").Cells(Rows.count, i).End(xlUp)).ClearContents 
Next i 

End Sub 

EDIT: 'with'ステートメントを使用すると、はるかにクリーンにすることができます。

Sub clearRowsAtoH() 

Dim i As Integer 

For i = 1 To 8 
With Sheets("BAC") 
    .range(.Cells(4, i), .Cells(Rows.count, i).End(xlUp)).ClearContents 
End With 
With Sheets("JPM") 
    .range(.Cells(4, i), .Cells(Rows.count, i).End(xlUp)).ClearContents 
End With 
With Sheets("CITI") 
    .range(.Cells(4, i), .Cells(Rows.count, i).End(xlUp)).ClearContents 
End With 
Next i 

End Sub 
+0

これは、すべての列で実際に使用されているすべてのセルのみを消去するため、より良い解決策です。 –

1

例の場合

With Sheets("BAC") 
    .Range("A4:H" & .Range("A4").End(xlDown).Row).ClearContents 
End With 
1

のためにあなたが本の中で複数のワークシートを持って、これを試してみてください、これを試してみてください。

Sub clear_rows() 
Dim Wks As String 
Dim i As Integer 
Dim last_cell As Long 

Application.ScreenUpdating = False 
For Each Worksheet In Worksheets ' loop through all worksheets 
    Wks = Worksheet.Name 'get the name of the sheet as a string 
    If Wks = "BAC" Or Wks = "JPM" Or Wks = "CITI" Then 'check the string against your list (could use array or modify to fit your application) 
     Worksheets(Wks).Activate 
     For i = 1 To 8  'loop through all columns you want a=1,h=8 and so on 
      last_cell = Worksheets(Wks).Cells(Rows.Count, i).End(xlUp).Row 'get the last used cell in the column i 
      If Not last_cell < 4 Then Worksheets(Wks).Range(Cells(4, i), Cells(last_cell, i)).Clear 'clear it if the column has more than 3 cells 
     Next 
    End If 
Next 
Application.ScreenUpdating = True 

End Sub 

は、あなたの好みに合わせて変更します!

関連する問題