EXCEL VBA 循环及删除重复值所在行

2015年11月2日15:14:55 发表评论 5

在准备Excel数据透视表培训的过程中,接到了一个比较怪异的需求,尝试使用录制宏的方法来解决,代码如下:

Sub 数据处理()
[G1] = "辅助列"        '录入辅助列表头
Dim I As Integer        '合并产品名称与价格,以便去除重复项
K = ActiveSheet.UsedRange.Rows.Count
For I = 2 To K
Range("G" & I) = Range("D" & I) & Range("F" & I)
Next
Columns("G:G").Select        '删除重复数据所在行
ActiveSheet.Range("$A$1:$G$65536").RemoveDuplicates Columns:=7, Header:=xlYes
Columns("G:G").Select        '删除辅助列
Selection.ClearContents

Sheets.Add
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
"外购入库序时簿!R1C1:R65536C6", Version:=xlPivotTableVersion10).CreatePivotTable _
TableDestination:="Sheet1!R3C1", TableName:="数据透视表1", DefaultVersion:= _
xlPivotTableVersion10
Sheets("Sheet1").Select
Cells(3, 1).Select
With ActiveSheet.PivotTables("数据透视表1").PivotFields("供应商")
.Orientation = xlRowField
.Position = 1
End With
With ActiveSheet.PivotTables("数据透视表1").PivotFields("日期")
.Orientation = xlRowField
.Position = 2
End With
With ActiveSheet.PivotTables("数据透视表1").PivotFields("物料名称")
.Orientation = xlRowField
.Position = 3
End With
ActiveSheet.PivotTables("数据透视表1").AddDataField ActiveSheet.PivotTables("数据透视表1" _
).PivotFields("单价"), "求和项:单价", xlSum
ActiveSheet.PivotTables("数据透视表1").PivotFields("供应商").Subtotals = Array(False, _
False, False, False, False, False, False, False, False, False, False, False)
ActiveSheet.PivotTables("数据透视表1").PivotFields("日期").Subtotals = Array(False, _
False, False, False, False, False, False, False, False, False, False, False)
Range("A6").Select
End Sub

此例中大部分代码都是通过录制宏得到的,只是稍作了一些修改,不过要比前些天的那个方法速度快了很多。

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: