杨老师课堂之Excel VBA 程序开发第六讲根据部门列创建工作表

简介: 杨老师课堂之Excel VBA 程序开发第六讲根据部门列创建工作表

 课件下载 :                                  

方式1:本节课件下载地址:链接: https://pan.baidu.com/s/1rf5pRmZ95fjVbz70KYi6Aw 密码: q9yk

方式2:或点击此处下载

效果预览图:


示例代码:

Sub 根据部门创建表并且完成数据拆分最终版()
 
 
Dim sht As Worksheet '定义变量  sht作为一个工作表对象
Dim i, k, j As Integer '定义变量 i,k,j 作为一个整数类型对象
Dim m  As Integer '定义变量 m 作为一个整数类型对象  表示 客户端输入的拆分列数
Dim irow  As Integer '定义变量 irow 作为一个整数类型对象  代表的是有效数据的最后一行
 
 
 
 
irow = Sheet1.Range("a65536").End(xlUp).Row
'删除
    Application.DisplayAlerts = False '不显示删除警告框
    For Each sht In Sheets          '表对象  sht 在  表集合(sheets)中进行循环
    
        If sht.Name <> "数据" Then   '如果表的名字  不等于  数据   那么
        
            sht.Delete              ' 表执行删除操作
            
        End If                      '结束如果语句
        
    Next                            ' 结束循环语句
    
    m = InputBox("请输入你要按哪列进行拆分")  'input代表输入 , box为盒子;  inputbox 表示:输入框  m 代表接收 客户端输入的整数类型
    
    
'根据部门建表
For i = 2 To irow   ' i 代表整数  从2到有效数据的最后进行循环
    k = 0           ' k 代表一个标记   初始化时,就为0,该标记作为后面判断的条件
    For Each sht In Sheets '表对象  sht 在  表集合(sheets)中进行循环
    
        If sht.Name = Sheet1.Cells(i, m) Then '如果表的名字 等于 第一个表的单元格(行,列) 那么
            k = 1                       ' 将 标记变量  k  设置为一个数字  例如:1
        End If       '结束如果语句
    Next      ' 结束循环语句
    
    If k = 0 Then '如果标记的变量 k  = 0   那么  执行下列代表  但是如果不等于 则不执行
        Sheets.Add after:=Sheets(Sheets.Count)  '在最后一张表后执行添加表 操作
        Sheets(Sheets.Count).Name = Sheet1.Cells(i, m) ' 添加后的表的名字wie 第一个表的单元格(行,列)
    End If   '结束如果语句
Next        ' 结束循环语句
 
    '拷贝数据 :j 代表的是表的序号
    For j = 2 To Sheets.Count
    ' 第一个表的单元格区域为 a1 到 f 有效数据最后一行  执行筛选   筛选列为 输入的列m  条件是 表的名字(指定列名相同)
     Sheet1.Range("a1:f" & irow).AutoFilter Field:=m, Criteria1:=Sheets(j).Name
    ' 第一个表的单元格区域为 a1 到 f 有效数据最后一行执行拷贝  到  循环到的某张表的a1单元格
     Sheet1.Range("a1:f" & irow).Copy Sheets(j).Range("a1")
    ' 第一个表的单元格区域为 a1 到 f 有效数据最后一行 执行筛选(取消筛选操作)
     Sheet1.Range("a1:f" & irow).AutoFilter
    Next ' 结束循环语句
End Sub


分享是快乐的,也见证了个人成长历程,文章大多都是工作经验总结以及平时学习积累,基于自身认知不足之处在所难免,也请大家指正,共同进步。

目录
相关文章
Excel中用宏VBA实现GBT 4761-2008 家庭关系代码转换
Excel中用宏VBA实现GBT 4761-2008 家庭关系代码转换
|
3月前
|
数据采集 数据库
在EXCEL中VBA编程检验身份证号码有效性
在EXCEL中VBA编程检验身份证号码有效性
|
4月前
|
开发工具 开发者
Excel 2016 VBA 提取单元格的中文字符
Excel 2016 VBA 提取单元格的中文字符
39 1
|
4月前
|
算法 数据挖掘 Java
日常工作中,Python+Pandas是否能代替Excel+VBA?
日常工作中,Python+Pandas是否能代替Excel+VBA?
|
5月前
|
数据格式 Python
Python代码示例,读取excel表格,将行数据转为列数据。(10)
【7月更文挑战第10天】Python代码示例,读取excel表格,将行数据转为列数据。
208 2
Excel如何使用VBA操作引用其它工作簿中的单元格
Excel引用其它工作簿中的单元格的值及使用VBA操作
|
22天前
|
数据采集 数据可视化 数据挖掘
利用Python自动化处理Excel数据:从基础到进阶####
本文旨在为读者提供一个全面的指南,通过Python编程语言实现Excel数据的自动化处理。无论你是初学者还是有经验的开发者,本文都将帮助你掌握Pandas和openpyxl这两个强大的库,从而提升数据处理的效率和准确性。我们将从环境设置开始,逐步深入到数据读取、清洗、分析和可视化等各个环节,最终实现一个实际的自动化项目案例。 ####
|
2月前
|
数据采集 存储 JavaScript
自动化数据处理:使用Selenium与Excel打造的数据爬取管道
本文介绍了一种使用Selenium和Excel结合代理IP技术从WIPO品牌数据库(branddb.wipo.int)自动化爬取专利信息的方法。通过Selenium模拟用户操作,处理JavaScript动态加载页面,利用代理IP避免IP封禁,确保数据爬取稳定性和隐私性。爬取的数据将存储在Excel中,便于后续分析。此外,文章还详细介绍了Selenium的基本设置、代理IP配置及使用技巧,并探讨了未来可能采用的更多防反爬策略,以提升爬虫效率和稳定性。
153 4
|
4月前
|
关系型数据库 MySQL Shell
不通过navicat工具怎么把查询数据导出到excel表中
不通过navicat工具怎么把查询数据导出到excel表中
52 0
|
2月前
|
数据处理 Python
Python实用记录(十):获取excel数据并通过列表的形式保存为txt文档、xlsx文档、csv文档
这篇文章介绍了如何使用Python读取Excel文件中的数据,处理后将其保存为txt、xlsx和csv格式的文件。
99 3
Python实用记录(十):获取excel数据并通过列表的形式保存为txt文档、xlsx文档、csv文档