我用一种非常简单的方法来解决问题,范围。
我知道当我在工作单上工作时我必须指明工作表,但我不知道怎么做得很好:&#39 ;-(任何人都可以解释如何这有用吗?
显然这个问题发生在这里!
Range(Selection, Range(Selection).End(xlToLeft).End(xlToRight)).Delete shift:=xlUp
提前非常感谢! 我对代码的其他部分没有任何问题。
非常感谢提前! : - )
Sub NarrowingDowning()
Dim LoopCounter, i, j As Long
LoopCounter = Range("B3", Range("b3").End(xlDown)).Cells.Count
For j = 2 To 4
'**** this section below is sorting out data: NO ERRORS here ****'
Worksheets(j).Sort.SortFields.Clear
Worksheets(j).Sort.SortFields.Add Key:=Range("G8") _
, SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets(j).Sort
.SetRange Range("A3", Range("A3").End(xlToRight).End(xlDown))
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
ActiveSheet.Range("G3").Select
For i = 1 To LoopCounter
ActiveSheet.Range("g3").Offset(i, 0).Select
If Selection.Value > 0.85 Then
Selection.Select
ElseIf Selection.Value < 0.85 Then
Selection.Offset(0, 1).Select
Range(Selection, Range(Selection).End(xlToLeft).End(xlToRight)).Delete shift:=xlUp
End If
If Selection.Value = "" Then Exit For
Next i
Next j
End Sub
我需要说清楚。对不起大家。 我有一张桌子,A2:H300,还有其他桌子,旁边有两根柱子,不应该受到影响。当满足某个条件时(即G(i).value <0.85),我想只删除该特定范围内的行。 因此,例如,如果G(6).value为0.2,满足条件,那么 A6:H6范围内的第6行将被删除,不会影响其他表:)
很抱歉让所有人感到困惑。
答案 0 :(得分:2)
如何:
Selection.EntireRow.Delete shift:=xlup
修改强>
由于您不想删除整行,您可以捕获包含其中某些内容的直接单元格区域,如下所示:
Range(Selection.End(xlToLeft), Selection.End(xlToRight)).Delete shift:=xlUp