对象的VBA方法范围_Global失败 - 循环

时间:2014-08-08 15:12:04

标签: excel vba excel-vba

我用一种非常简单的方法来解决问题,范围。

我知道当我在工作单上工作时我必须指明工作表,但我不知道怎么做得很好:&#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行将被删除,不会影响其他表:)

很抱歉让所有人感到困惑。

1 个答案:

答案 0 :(得分:2)

如何:

Selection.EntireRow.Delete shift:=xlup

修改

由于您不想删除整行,您可以捕获包含其中某些内容的直接单元格区域,如下所示:

Range(Selection.End(xlToLeft), Selection.End(xlToRight)).Delete shift:=xlUp