拆分表格并保存

  • 函数
    • Application主程序对象
    • Open 打开文件
    • Add 新建工作簿
    • Merge合并
    • AutoFilter(自动筛选)
    • Offset 偏移
    • Msgbox和Inputbox窗口函数
  • 练习
    • 拆分表存储成文件
    • 合并单元格
    • 利用筛选分离表格内容
    • 按照a1建表(避免重复名字)
    • 填充数据到指定表格里
    • 将数据表单元格创建分表再填充数据
  • 综合训练
    • 利用窗口函数吧上面的动作重新来一遍
    • 把分表内容整合到sht1

函数

Application主程序对象

application.displayalsert=false 表示不要弹窗

Open 打开文件

eg :

application screenupdating=false//不要屏幕更新
Workbooks. Open Filename:="d:\data\1.xlsx"
activeworkbook.sheets(1).range("a1") = "lala"//表示打开当前文件输入的标记
activeworkbook.save
activeworkbook.close
application.displayalsert=true

Add 新建工作簿

eg:

Sub one()
Workbooks.Add
ActiveWorkbook.Sheets(1).Range("a1") = "llll"
ActiveWorkbook.SaveAs Filename:="C:\Users\zsnzd\Desktop\excel\第四节\22.xlsx"
ActiveWorkbook.CloseEnd Sub

range(“范围”)
**Save/Save as 保存工作簿
Close关闭工作簿
Select(选中)
Delete(删除)
Copy(复制)
ClearContents(清空)
Value(值) Text(内容文字)
Row(行号) Column(列号)
Entirerow单元格所在整行 **

Merge合并

AutoFilter(自动筛选)

Offset 偏移

新建表时回避重名错误

Msgbox和Inputbox窗口函数


Sub chuan()Msgbox "你好"m = InputBox("请输入第" & m & "例")
End Sub

练习

拆分表存储成文件

注意i容易出错

Sub chaifen()
Dim sht As Worksheet
Dim i As Integer
For Each sht In Sheetssht.CopyActiveWorkbook.SaveAs Filename:="C:\Users\zsnzd\Desktop\excel\第四节\" & sht.Name & ".xlsx"ActiveWorkbook.CloseNext
Application.DisplayAlerts = True
End Sub

结合上一讲综合练习

//删除空格,填充
Sub shaixuan()
Dim sht As Worksheet
Dim i As IntegerFor Each sht In SheetsFor i = 100 To 2 Step -1If sht.Cells(i, 4) = "" Thensht.Range("d" & i).EntireRow.DeleteEnd IfIf sht.Cells(i, 2) = "理工" Thensht.Cells(i, 3) = "lg"ElseIf sht.Cells(i, 2) = "文科" Thensht.Cells(i, 3) = "wg"Elsesht.Cells(i, 3) = "ck"End IfIf sht.Cells(i, 5) = "男" Thensht.Cells(i, 6) = "先生"Elsesht.Cells(i, 6) = "女士"End IfNextNextEnd Sub//拆成文件
Sub chai()
Dim sht As Worksheet
For Each sht In Sheetssht.CopyActiveWorkbook.SaveAs Filename:="C:\Users\zsnzd\Desktop\excel\第四节\" & sht.Name & ".xlsx"ActiveWorkbook.Close
Next
Application.DisplayAlerts = True
End Sub

合并单元格

利用筛选分离表格内容

**注意
1、end后面的row
2、k是整数型
3、range(“a1:f”&k)
4、copy后面直接加sht.单元格
5、Criteria1:="=" 这里是one
**

Sub 用筛选拆分()
Dim i As Integer
Dim sht As Worksheeti = Sheet1.Range("a65535").End(xlUp).Row
For Each sht In WorksheetsIf sht.Name <> 数据 ThenSheet1.Range("a1:f" & i).AutoFilter field:=4, Criteria1:="=" & sht.NameSheet1.Range("a1:f" & i).Copy sht.Range("a1")End If
NextSheet1.Range("a1:f" & i).AutoFilter
End Sub

按照a1建表(避免重复名字)

**注意:
1、i表示对行的循环整数
2、k表示布尔值判断作用
3、所有表的后面建sheets.add after:=
**

Sub bimian()
Dim sht As Worksheet
Dim i As Integer
Dim k As Integer
For i = 1 To Sheet1.Range("a65536").End(xlUp).Rowk = 0For Each sht In SheetsIf sht.Name = Sheet1.Range("a" & i) Thenk = 1End IfNextIf k = 0 ThenSheets.Add after:=Sheets(Sheets.Count)Sheets(Sheets.Count).Name = Sheet1.Range("a" & i)End If
Next
End Sub

填充数据到指定表格里

Sub chai()
Dim sht As Worksheet
Dim k As Integer
k = Sheet1.Range("a65536").End(xlUp).Row
For Each sht In Sheets
If sht.Name <> 数据 ThenSheet1.Range("a1:f" & k).AutoFilter field:=4, Criteria1:="=" & sht.NameSheet1.Range("a1:f" & k).Copy sht.Range("a1")
Next
Sheet1.Range("a1:f" & k).AutoFilter
End Sub

将数据表单元格创建分表再填充数据

Sub chai()
Dim sht As Worksheet
Dim k, i, j As Integer
k = Sheet1.Range("a65536").End(xlUp).Row
'拆分
For i = 2 To kj = 0For Each sht In WorksheetsIf sht.Name = Sheet1.Range("d" & i) Thenj = 1End IfNextIf j = 0 ThenSheets.Add after:=Sheets(Sheets.Count)Sheets(Sheets.Count).Name = Sheet1.Range("d" & i)End If
Next'填数据
For Each sht In WorksheetsIf sht.Name <> 数据 ThenSheet1.Range("a1:f" & k).AutoFilter field:=4, Criteria1:="=" & sht.NameSheet1.Range("a1:f" & k).Copy sht.Range("a1")End If
NextSheet1.Range("a1:f" & k).AutoFilter
End Sub

综合训练

利用窗口函数吧上面的动作重新来一遍

Sub chai()
Dim sht As Worksheet
Dim k, i, j As Integer
k = Sheet1.Range("a65536").End(xlUp).Row
Msgbox "你好"
m = InputBox("请输入一个" & m & "列")
'拆分
For i = 2 To kj = 0For Each sht In WorksheetsIf sht.Name = Sheet1.Range("d" & i) Thenj = 1End IfNextIf j = 0 ThenSheets.Add after:=Sheets(Sheets.Count)Sheets(Sheets.Count).Name = Sheet1.Range("d" & i)End If
Next'填数据
For Each sht In WorksheetsIf sht.Name <> 数据 ThenSheet1.Range("a1:f" & k).AutoFilter field:=m, Criteria1:="=" & sht.NameSheet1.Range("a1:f" & k).Copy sht.Range("a1")End If
NextSheet1.Range("a1:f" & k).AutoFilter
End Sub

把分表内容整合到sht1

注意
1、清空内容要指定range范围

Sub hebing()
Dim i, j As Integer   //i是数据源表的最后一行,j是目标表(数据表)的最后一行
Dim sht As Worksheet//先要删除所有数据
Sheet1.Range("a1:f65536").ClearContents//复制表头
Sheet2.Range("a1:f1").Copy Sheet1.Range("a1")//复制数据
For Each sht In SheetsIf sht.Name <> "数据" Theni = sht.Range("a65536").End(xlUp).Rowj = Sheet1.Range("a65536").End(xlUp).Rowsht.Range("a2:f" & i).Copy Sheet1.Range("a" & j + 1)End If
Next
End Sub

【excel vba】拆分表格相关推荐

  1. excel如何拆分表格

    今天跟大家分享一下excel如何拆分表格 1.打开演示文件,要求将表格拆分为多个工作表. 2.首先我们点击下图选项 3.点击[汇总拆分]选择[拆分工作表] 4.将[表头行数]设置为2 5.最后点击[确 ...

  2. excel如何拆分表格?

    今天跟大家分享一下excel如何拆分表格? 1.打开演示文件,要求将表格按照店铺的不同分别拆分开. 2.首先我们点击下图选项 3.点击[汇总拆分]-[拆分工作表] 4.将[表头行数]设置为2 5.然后 ...

  3. excel如何拆分表格为多个

    今天跟大家分享一下excel如何拆分表格为多个 1.打开演示文件,要求将表格按照管区的不同拆分为多个. 2.首先我们点击下图选项 3.点击[汇总拆分]-[拆分工作表] 4.将[表头行数]设置为3 5. ...

  4. VB实现excel自动拆分表格

    工作场景:从系统导出后人工处理完的excel数据,需要按照部门拆分并推送给各部门人员. 传统的工作方式就只能人工一个个部门筛选,复制粘贴出来各自发送. 其实现在有些版本的excel或wps已经集成了根 ...

  5. excel怎么拆分表格

    1.如下图是某公司几个分公司产品生产情况,现在想要按照分公司的不同快速将表格拆分为多个. 2.点击下图选项(Excel工具箱,百度即可了解详细下载安装信息,本文这里就不做详细解说.) ​ 3.点击[汇 ...

  6. excel怎么拆分表格之按照关键词拆分表格数据

    1.如下图是某公司出库表,现在我们想要将此表格按照业务部门关键词将表格数据拆分掉. ​ 2.首先我们点击下图选项 3.点击[汇总拆分],选择[拆分工作表] 4.然后将[表头行数]设置为1 5.将[关键 ...

  7. 3, excel vba 获取表格里的单元格的值

    通过上一节, 我们己经可以掌握进入vba的编辑页面,可以愉快的写代码了. 接下来,给大家看看怎么取得表格里一个单元格的值.因为只有拿到了这个值,你才能对它进行各种改造 如下图: 单元格 A1 里有一个 ...

  8. Excel Vba拆分并填充单元格

    https://www.cnblogs.com/icedream/archive/2013/03/05/2945158.html Sub 拆分并填充单元格() ' ' 拆分并填充单元格 宏 ' ' 可 ...

  9. 04 excel vba 在表格的底部输入学生姓名和成绩

    自动弹出输入姓名和成绩的输入框,并且直接在表格底部输入姓名和成绩 用到了表格两个命令  : end(xlDown)移动表格最后一行 Offset(1,0) 下面一行的单元 代码如下: '出错提醒 Op ...

  10. Excel vba开发 合并单元格拆分自动填充功能、在每一条数据后面插入空白行、将地理坐标的经纬度转换成度等功能

    写在前面: 最近老大丢给我一个数据量比较大,比较复杂的表,让我用VB去处理,刚被分到这个任务的时候一脸茫然,对Excel VB开发一点都不了解,所以就自己研究并查资料,最后终于解决了. 一.Excel ...

最新文章

  1. 如何实时查看mysql当前连接数
  2. 云时代的安全解读:云安全≠云计算安全
  3. iview Table列表中增加字体图标
  4. 对数据库进行先查询后插入的解决方案
  5. mysql root用户可以同时几个人连接_PHP安全:MySQL的使用安全
  6. mysql集群异地部署_linux 环境下 部署mysql 集群
  7. 数据类型的内置方法:元组
  8. linux 之学习路线
  9. mysql like 4种优化_mysql like优化_超级优化 清木桥
  10. VC中自动改变控件位置和大小的对话框类
  11. LightTable:更改Julia代码字体和console中字体
  12. 计算几何与计算机图形必备书单整理
  13. PMP之采购管理过程组中的合同类型辨析
  14. javscricpt基础
  15. GDB调试总结和实例
  16. 零基础学java(6)——面向对象的基本特征
  17. JS脚本实现模拟按钮点击:批量抓取百度推广中的关键词建议
  18. win7下如何注册控件
  19. JVM内存模型篇【JVM内存模型】
  20. Linux部署网盘(nextcloud)

热门文章

  1. 电视机hdr是什么功能
  2. 微信SDK非ipad协议
  3. 差分放大电路知识总结
  4. 传说中的Linux三剑客命令之grep(三剑客老幺)别人只知道了而我却做到了
  5. [Python]网站数据爬取任务
  6. 树形选择排序(锦标赛排序)
  7. 用AI 来一键体验“返老还童”的快乐!马化腾、李彦宏、杨幂都能还原的那种 |儿童节福利...
  8. 【经典算法】:英雄联盟中打字屏蔽系统的实现
  9. 初创公司股权分配协议应该如何设计
  10. Win10安装了Office右键没有新建Word,excel,PPT等选项解决方法