你是不是还在为处理大量excel数据在烦恼呢?是不是为excel数据而加班加点呢?这些都不是事,现在为大家推出一个很好用的编程语言。不需要安装其他工具,高效处理数据,几千条数处理仅需几秒。这个是什么编程语言呢。就是
宏编程,vba作为微软开发的,主要对offic进行处理,但是大多数情况下都是对excel进行的。所以我就用excel为例。
我这里得到了个这种需求 :辅导员从网上抓取了各个专业的学生成绩1000条数据放入一张电子表格中,但是表格的格式不便于查看,辅导员想对这个表按照班级分类,并分别表制作sheet表格或者对应班级工作簿,耗时一小时使用vba代码处理excel表格拆分中的按班级进行分类,仅需1分钟即可完成。我将这个代码进行了改动,可以让她按照标题进行分类。
看下效果未分类之前的效果:

分类之后的效果:

这是按照部门来分的表格,仅需十多秒就可以完成。
这个代码能够重复使用,减少了很多不不要的工作。
Sub 工作表拆分()
s = "d"
Dim SplitCol As String, ColNum As Integer, HeadRows As Byte, arr, lastrow, i, ShtIndex, only As New Collection
SplitCol = s
HeadRows = 1
If HeadRows >= ActiveSheet.UsedRange.Rows.Count Then Exit Sub
ColNum = Cells(1, SplitCol).Column
lastrow = ActiveSheet.UsedRange.Rows.Count '
arr = Range(Cells(HeadRows + 1, SplitCol), Cells(lastrow, SplitCol)).Value
On Error Resume Next
For i = 1 To lastrow - HeadRows
If Len(arr(i, 1)) > 0 Then only.Add CStr(arr(i, 1)), CStr(arr(i, 1))
Next i
ShtIndex = ActiveSheet.Index
On Error Resume Next
For i = 1 To only.Count
Debug.Print Sheets(only(i)).Name
If Err = 0 Then MsgBox
Err.Clear
Next i
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
For i = 1 To only.Count
Sheets.Add After:=Sheets(Sheets.Count)
Sheets(Sheets.Count).Name = only(i)
Sheets(ShtIndex).Rows("1:" & HeadRows).Copy Sheets(Sheets.Count).Cells(1, 1)
Next i
Sheets(ShtIndex).Select
For i = HeadRows + 1 To lastrow
If Len(Cells(i, SplitCol)) > 0 Then
With Sheets(Cells(i, SplitCol).Text).UsedRange.Rows(Sheets(Cells(i, SplitCol).Text).UsedRange.Rows.Count + 1)
Rows(i).Copy .Cells(1)
.Cells = Rows(i & ":" & i).Value
End With
End If
Next i
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
End Sub
我后面还将分享更多东西具体目录是:
简易学vba教材
基础篇
初识vba
读取和选取指定单元格数据
变量介绍和使用
顺序分支循环讲解
简单操作工作簿
自定义函数与返回值的讲解
字典基础和应用
窗体介绍
实战电话号码去重
数据库篇
vba连接mysql数据库
vba连接Microsoft Access Database 数据库
数据库的简单语句介绍
Sql语句的增删改查设置
多表操作,联合操作数据表
一个简单的成绩查询功能
码
网抓篇
网抓简单介绍
简单实例电话号码查询
正则表达式和split介绍
网抓百度搜索
post和get方法介绍
ie控件抓取天猫商品列表
网抓公式




