|
本帖最后由 jimolaojiu 于 2011-9-22 18:01 编辑
对于vba的学习,我是个新手,但工作上极需解决现在遇到的问题,求高手指点。从总表中分别把各分店筛选(用分店名称筛选)出来,然后把数据再复制到相关的各分店的表中,谢谢。
- Option Explicit
- Sub AutoFil()
- Dim ForI As Long, EndRow As Long, StrCriteria1 As String
- '定义循环变量ForI,求最后非空单元格行号EndRow,筛选值变量StrCriteria1
- Application.ScreenUpdating = False
- '禁止屏幕刷新功能
- Sheet1.Range("A1:E1").AutoFilter
- 'A1:E1自动筛选
- For ForI = 1 To Sheets.Count
- '从1开始循环到工作表的总个数
- If Sheets(ForI).Name <> "总表" Then
- '判断,如果循环到的工作表名称不等于 总表 那么运行下面代码
- StrCriteria1 = Sheets(ForI).Name
- '将当前循环到的工作表名称赋值给变量StrCriteria1
- Sheet1.Range("A1").AutoFilter Field:=1, Criteria1:=StrCriteria1
- '筛选A1单元格的值为变量StrCriteria1的值
- EndRow = Sheet1.Range("A65536").End(xlUp).Row
- '求总表以A列为准的最后一个非空单元格行号
- Sheets(ForI).Cells.Clear
- '清除当前循环到的工作表
- Sheet1.Range("A1:E" & EndRow).Copy Sheets(ForI).Range("A1")
- '将筛选的结果复制到当前循环到的工作表
- End If
- Next
- Sheet1.Range("A1:E1").AutoFilter
- '取消自动筛选
- Application.ScreenUpdating = True
- '恢复屏幕刷新
- End Sub
复制代码
筛选后复制数据到另一个表中.rar
(8.75 KB, 下载次数: 865)
|
|