使用VBA归纳某列相同的数据

#1、创作背景

如下图所示,需要很快找出A列中相同的数据,如果用筛选功能,数据量多了就会很麻烦,于是写了如下脚本(3)解决此问题。

#2、核心思想

使用VBA代码筛选出该列重复的值,与之对应的在相邻列用相同的数值进行标记。如下图所示,A2用数字0标记,由于A4单元格的值和A2一样,所以也用0标记。

此时直接对B列进行排序,就可以清楚的看到A列哪些数据是有重复的

#3、代码如下

#主函数:

Sub test()

Dim columnName_0 As String
Dim columnName_1 As String
Dim sheetName As String
sheetName = "Sheet1"
columnName_0 = "数据"
columnName_1 = "Seq"
p = 0

a = ActiveSheet.[A65536].En

你可以按照以下步骤使用VBA某列汇总拆分工作表: 1. 打开你想要拆分的工作表。 2. 在工作表上方的菜单栏中选择“开发人员”选项卡。如果你没有看到该选项卡,则需要启用它。可以通过下列步骤:文件->选项->自定义功能区->勾选“开发人员”选项卡。 3. 点击“Visual Basic”按钮,打开Visual Basic编辑器。 4. 在编辑器中,依次展开“项目-VBAProject(VBA项目)”、“Microsoft Excel 对象”、“Sheet1(Sheet1)”,双击“Sheet1(Sheet1)”。 5. 在工作表的代码窗口中输入以下代码: ``` Sub SplitData() Dim lastRow As Long Dim currentRow As Long Dim i As Long Dim currentName As String Dim ws As Worksheet Dim newWs As Worksheet Set ws = ThisWorkbook.Sheets("Sheet1") lastRow = ws.Range("A" & Rows.Count).End(xlUp).Row currentRow = 2 For i = 2 To lastRow If ws.Range("A" & i).Value <> currentName Then currentName = ws.Range("A" & i).Value Set newWs = ThisWorkbook.Sheets.Add(After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)) newWs.Name = currentName ws.Range("A1:D1").Copy newWs.Range("A1") currentRow = 2 End If ws.Range("A" & i & ":D" & i).Copy newWs.Range("A" & currentRow) currentRow = currentRow + 1 Next i End Sub ``` 6. 保存并关闭Visual Basic编辑器。 7. 回到工作表并点击“开发人员”选项卡上的“宏”按钮。 8. 在弹出的对话框中选择“SplitData”宏,并点击“运行”。 这将按列A中的值拆分工作表,并将每个唯一值的数据放入一个新的工作表中。每个新工作表的名称将是该值。请注意,此代码假设您的数据以列A开始,并且您的数据没有标题行。如果您的数据的列不同,请在代码中进行调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值