2017-02-22 10 views
1

私はかなり長い間これを探していましたが、私がここで見つけた他の解決策を調整し実装するのに十分な理解がありません。マクロ内のヘッダー行を除外します

マクロを使用して、シート上で一定量のアクションを実行しています。シートの最初の行にはヘッダーが含まれているため、最初の行をいくつかのアクションから除外する必要があります。

私は以下のコードを貼り付けますが、これはこれを行う最良の方法ではないことを理解していますが(これはおそらくIF関数では良いでしょう)マクロ内のヘッダー行全体を単純に除外する方法はありますか?または、これらの3つのステップでT1を除外して、列Tに値を設定しますか?

Sub TASKDUESTATUS() 
' 
' TASKDUESTATUS Macro 
' 

' 



'Filter Completed and In Progress 
    ActiveSheet.UsedRange.AutoFilter Field:=21, Criteria1:= _ 
     "=Completed", Operator:=xlOr, Criteria2:="=In Progress" 
'Fill Column T with 3 
    Dim rX As Range 
    Set rX = Intersect(ActiveSheet.UsedRange, Range("T:T")).Cells.SpecialCells(xlCellTypeVisible) 
    rX.Value = "3" 

'Filter Not Started 
    ActiveSheet.UsedRange.AutoFilter Field:=21, Criteria1:= _ 
     "Not Started" 

'Filter Date up till todays date with today INCLUDED 
    ActiveSheet.UsedRange.AutoFilter Field:=19, Criteria1:="<=" & Date 

'Fill Column T with 2 
    Dim rX2 As Range 
    Set rX2 = Intersect(ActiveSheet.UsedRange, Range("T:T")).Cells.SpecialCells(xlCellTypeVisible) 
    rX2.Value = "2" 

'Filter Not Started 
     ActiveSheet.UsedRange.AutoFilter Field:=21, Criteria1:= _ 
     "Not Started" 

'Filter date after todays date with today EXCLUDED 
    ActiveSheet.UsedRange.AutoFilter Field:=19, Criteria1:=">" & Date 

'Fill Column T with 1 
    Dim rX3 As Range 
    Set rX3 = Intersect(ActiveSheet.UsedRange, Range("T:T")).Cells.SpecialCells(xlCellTypeVisible) 
    rX3.Value = "1" 

'Add conditional formatting 
    Columns("T:T").Select 
    Selection.FormatConditions.AddIconSetCondition 
    Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority 
    With Selection.FormatConditions(1) 
     .ReverseOrder = False 
     .ShowIconOnly = False 
     .IconSet = ActiveWorkbook.IconSets(xl3TrafficLights1) 
    End With 
    With Selection.FormatConditions(1).IconCriteria(2) 
     .Type = xlConditionValuePercent 
     .Value = 33 
     .Operator = 7 
    End With 
    With Selection.FormatConditions(1).IconCriteria(3) 
     .Type = xlConditionValuePercent 
     .Value = 67 
     .Operator = 7 
    End With 

'Clear filters 
    ActiveSheet.UsedRange.AutoFilter Field:=21 
    ActiveSheet.UsedRange.AutoFilter Field:=19 

End Sub 
+0

Intersect(ActiveSheet.UsedRange.Offset(1)、Range( "T:T"))。Resize(ActiveSheet.UsedRange.Rows.Count - 1、ActiveSheet.UsedRange.Columns.Count) – jkpieterse

答えて

0

、あなたのデータに最低埋め行を見つけ と("T1:T" & i)("T:T")を変更するi = Range("a1048576").End(xlUp).Rowを追加します。

これは私の目的のために動作します。試してみてください。

関連する問題