首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【VBA教程一】根据要求拆分工作表

1、  把数据粘贴到新建工作簿的sheet1里

2、  按Alt+F11 打开VBA编辑器

3、  点击插入-模块-模块1

4、  双击模块1、把下面的代码复制到模块1后点击保存

5、  把表格保存为带宏文件.xlsm

6、  运行代码Alt+F8 选择【根据要求拆分表】

使用视频教程:

代码如下:

-------------------------------------

Sub 根据要求拆分表()

Dim sht As Worksheet

Dim k, i, j As Integer

Dim irow As Integer '这个说的是一共多少行

Dim l As Integer

l = InputBox("你要关键数据所在的列数是多少", "输入列数的提示框")

'删除无意义的表

Application.DisplayAlerts = False

If Sheets.Count > 1 Then

For Each sht1 In Sheets

If sht1.Name "Sheet1" Then

'把数据粘贴到sheet1表中

sht1.Delete

End If

Next

End If

Application.DisplayAlerts = True

irow = Sheet1.Range("A65536").End(xlUp).Row

'拆分表

For i = 2 To irow

k = 0

For Each sht In Sheets

If sht.Name = Sheet1.Cells(i, l) Then

k = 1

End If

If k = 0 Then

Sheets.Add after:=Sheets(Sheets.Count)

Sheets(Sheets.Count).Name = Sheet1.Cells(i, l)

End If

'拷贝数据

Dim rs As Integer

Dim cs As Integer

rs = Sheet1.Range("A1").End(xlDown).Row

cs = Sheet1.Range("A1").End(xlToRight).Column

'Cells(1, 1).Resize(rs, cs).Select

For j = 2 To Sheets.Count

Sheet1.Cells(1, 1).Resize(rs, cs).AutoFilter Field:=l, Criteria1:=Sheets(j).Name

Sheet1.Cells(1, 1).Resize(rs, cs).Copy Sheets(j).Range("a1")

Sheet1.Cells(1, 1).Resize(rs, cs).AutoFilter

Sheet1.Select

MsgBox "已处理完毕"

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20230323A0AQDA00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券