|
这是我自己编写的宏,目的是利用高级筛选筛选出符合出我的条件的零件 ,但是每当运行到
Set rng = Sheets("条件表").Range(Cells(1, i), Cells(FR, i)).CurrentRegion这句时候总是显示出应用程序错误或者对象定义错误
自己试着改了几次 总是这样 请各位帮忙看看到底是啥问题
option Explicit
Option Base 1
Sub 高级筛选()
Dim FR%, sheetname(), i%, rng As Range, ws As Worksheet
sheetname = Array("发动机", "变速箱", "动力转向油泵", "离合器从动盘", "风扇法兰", "风扇")
For i = 1 To UBound(sheetname)
Sheets.Add after:=Sheets((Sheets.Count))
Set ws = ActiveSheet
ws.Name = sheetname(i)
FR = Sheets("条件表").Cells(65536, i).End(xlUp).Row
Set rng = Sheets("条件表").Range(Cells(1, i), Cells(FR, i)).CurrentRegion
Sheets("精简版").Columns("A:H").AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=rng, _
CopyToRange:=Sheets(sheetname(i)).Range("A1"), Unique:=False
Set rng = Nothing
Next i
End Sub
- Sub 高级筛选()
- Dim sh1 As Worksheet
- Dim sh2 As Worksheet
- Dim rng As Range
- Dim x(), r%, i%
- Application.ScreenUpdating = False
- Application.DisplayAlerts = False
- Call test
- x = Array("发动机", "变速箱", "动力转向油泵", "离合器从动盘", "风扇法兰", "风扇")
- Set sh2 = Sheets("条件表")
- For i = 1 To UBound(x)
- Set sh1 = Sheets.Add(after:=Sheets((Sheets.Count)))
- sh1.Name = x(i)
- r = sh2.Cells(65536, i).End(xlUp).Row
- Set rng = sh2.Range(sh2.Cells(1, i), sh2.Cells(r, i))
- Sheets("精简版").Columns("A:H").AdvancedFilter Action:=xlFilterCopy, _
- CriteriaRange:=rng, CopyToRange:=sh1.Range("A1")
- Set rng = Nothing
- Next i
- End Sub
- Sub test()
- Dim sh As Worksheet
- For Each sh In Worksheets
- If sh.Name <> "精简版" And sh.Name <> "条件表" Then sh.Delete
- Next sh
- End Sub
复制代码
20 22数据b.rar
(134.15 KB, 下载次数: 29)
|
|