Arrays 删除行和列的数组

Arrays 删除行和列的数组,arrays,vba,excel,if-statement,Arrays,Vba,Excel,If Statement,我有一些报告,它们之间有小计。我需要删除小计,这很容易设置条件(就像在我的IF语句中一样) 但是,我下面的代码并没有删除整行小计 Sub clean_up() 'declare variables Dim i As Integer Dim noRows As Integer 'count rows noRows = Range("B2:B387").Rows.Count 'delete row entries that are duplicates.. For i = 1 To noRows

我有一些报告,它们之间有小计。我需要删除小计,这很容易设置条件(就像在我的IF语句中一样)

但是,我下面的代码并没有删除整行小计

Sub clean_up()
'declare variables
Dim i As Integer
Dim noRows As Integer

'count rows
noRows = Range("B2:B387").Rows.Count

'delete row entries that are duplicates..
For i = 1 To noRows
    If Range("B2").Cells(i + 1, 1) = Range("B2").Cells(i, 1) Then
    Range("B2:G2").Cells(i + 1).Clear


    End If
Next i

End Sub

我不明白为什么我的代码的
范围(“B2:G2”).单元格(I+1).Clear
不正确。使用
Range(“B2”).Cells(i+1).Clear
可以删除行中的第一个条目,因此不应该使用
Range(“B2:G2”).Cells(i+1).Clear
删除整行?

它只影响单个单元格,因为您从一个范围(
Range(“B2:G2”)
)开始,然后告诉它只清除一个单元格(
.Cells(i+1)
)该范围(向下偏移1行)。最好从单个单元格开始,并使用来调整列数

Range("B2").Cells(i + 1).RESIZE(1, 6).Clear

Range(“B2:G6”)。行(i+1)。清除也应该起作用…;)@DirkReichel-我也在考虑
范围(“B2:G6”)。偏移量(I,0)。清除
,但我没有测试它以确保我是正确的偏移量。@DirkReichel-我不知道您指的是什么错误。使用扩展到给定范围之外没有什么错,无论该范围是多个单元格中的单个单元格。只需通过电话。。。你是对的。范围。单元格将始终由范围的左上角单元格偏移。。。只是看起来不对。。。