使用vba将老系统清单中第一行删除,并且将W列为”免检“的所有行删除
时间: 2024-03-23 16:43:55 浏览: 52
您可以使用以下代码来删除老系统清单中的第一行,并删除W列为”免检“的所有行。假设您的数据在Sheet1中:
```
Sub DeleteRows()
Dim LastRow As Long
With Sheets("Sheet1")
LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row '找到最后一行
.Rows(1).Delete '删除第一行
LastRow = LastRow - 1 '由于删除了第一行,所以最后一行需要减1
.Range("A1:W" & LastRow).AutoFilter Field:=23, Criteria1:="免检" '筛选W列为”免检“的所有行
.Range("A2:W" & LastRow).SpecialCells(xlCellTypeVisible).EntireRow.Delete '删除可见行
.AutoFilterMode = False '关闭筛选
End With
End Sub
```
在这个例子中,我们首先使用`.Rows(1).Delete`删除了第一行,然后使用AutoFilter方法筛选出W列为”免检“的所有行,并使用SpecialCells方法选择可见行并删除。最后,我们关闭了筛选模式。
相关问题
使用vba将表中第一行删除,并且将W列为”免检“的所有行删除。之后,在"老系统数据透视表"中建立数据透视表,以"分公司名称"为行,以"保单状态"为列,以"投保单号为值"
您可以使用以下代码来删除第一行并删除W列为”免检“的所有行,然后在"老系统数据透视表"中建立数据透视表。假设您的数据在Sheet1中,数据透视表将被创建在名为"老系统数据透视表"的工作表中:
```
Sub CreatePivotTable()
Dim LastRow As Long
Dim PTCache As PivotCache
Dim PT As PivotTable
Dim PTWorksheet As Worksheet
With Sheets("Sheet1")
LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row '找到最后一行
.Rows(1).Delete '删除第一行
LastRow = LastRow - 1 '由于删除了第一行,所以最后一行需要减1
.Range("A1:W" & LastRow).AutoFilter Field:=23, Criteria1:="免检" '筛选W列为”免检“的所有行
Set PTCache = ActiveWorkbook.PivotCaches.Create( _
SourceType:=xlDatabase, _
SourceData:=.Range("A1:W" & LastRow))
Set PTWorksheet = Sheets.Add
PTWorksheet.Name = "老系统数据透视表"
Set PT = PTWorksheet.PivotTables.Add( _
PivotCache:=PTCache, _
TableDestination:=PTWorksheet.Range("A1"), _
TableName:="PivotTable1")
With PT
.PivotFields("分公司名称").Orientation = xlRowField
.PivotFields("保单状态").Orientation = xlColumnField
.AddDataField .PivotFields("投保单号"), "值", xlSum
End With
.AutoFilterMode = False '关闭筛选
End With
End Sub
```
在这个例子中,我们首先使用`.Rows(1).Delete`删除了第一行,然后使用AutoFilter方法筛选出W列为”免检“的所有行。接下来,我们使用PivotCaches.Create方法创建了一个数据透视表缓存对象,然后使用Sheets.Add方法创建了一个名为"老系统数据透视表"的工作表。然后,使用PivotTables.Add方法在新建的工作表上创建了一个数据透视表对象。最后,我们使用PivotFields方法将“分公司名称”作为行、将“保单状态”作为列、将“投保单号”作为值添加到了数据透视表中。请注意,代码中的23是W列的列号。您可以根据您的实际情况更改这个数字。
使用vba将表中第一行删除,并且将W列为”免检“的所有行删除。之后,建立数据透视表,以"分公司名称"为行,以"保单状态"为列,以"投保单号为值"
您可以使用以下代码来删除第一行并删除W列为”免检“的所有行,然后建立数据透视表。假设您的数据在Sheet1中:
```
Sub CreatePivotTable()
Dim LastRow As Long
Dim PTCache As PivotCache
Dim PT As PivotTable
Dim PTWorksheet As Worksheet
With Sheets("Sheet1")
LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row '找到最后一行
.Rows(1).Delete '删除第一行
LastRow = LastRow - 1 '由于删除了第一行,所以最后一行需要减1
.Range("A1:W" & LastRow).AutoFilter Field:=23, Criteria1:="免检" '筛选W列为”免检“的所有行
Set PTCache = ActiveWorkbook.PivotCaches.Create( _
SourceType:=xlDatabase, _
SourceData:=.Range("A1:W" & LastRow))
Set PTWorksheet = ActiveWorkbook.Worksheets.Add
Set PT = PTWorksheet.PivotTables.Add( _
PivotCache:=PTCache, _
TableDestination:=PTWorksheet.Range("A1"), _
TableName:="PivotTable1")
With PT
.PivotFields("分公司名称").Orientation = xlRowField
.PivotFields("保单状态").Orientation = xlColumnField
.AddDataField .PivotFields("投保单号"), "值", xlSum
End With
.AutoFilterMode = False '关闭筛选
End With
End Sub
```
在这个例子中,我们首先使用`.Rows(1).Delete`删除了第一行,然后使用AutoFilter方法筛选出W列为”免检“的所有行。接下来,我们使用PivotCaches.Create方法创建了一个数据透视表缓存对象,然后使用PivotTables.Add方法在新建的工作表上创建了一个数据透视表对象。最后,我们使用PivotFields方法将“分公司名称”作为行、将“保单状态”作为列、将“投保单号”作为值添加到了数据透视表中。请注意,代码中的23是W列的列号。您可以根据您的实际情况更改这个数字。
阅读全文