我有一个包含以下表格的1000个条目的数据集:
ID名称值
1 Name1 55
2 Name1 5
3名称2 6
4名称1 44
5名称2 33
6姓名1 22
此数据全部包含在单个工作表中。我希望excel根据名称分隔数据,然后将每一行放在同一工作簿中的单独工作表中。对于上述数据,excel必须创建两个工作表(Name1& Name2)。
我尝试宏录制,但我无法修复生成的宏。它适用于当前数据,但在添加新数据后,宏不能正常工作。
VBA或其他解决方案可以实现吗?
答案 0 :(得分:0)
本准则可以满足您的需求:
Sub Macro2()
Range("B2").Select
Do Until Selection.Value = "xxx"
If Selection.Value = "Name1" Then
ActiveCell.Rows("1:1").EntireRow.Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Sheet2").Select
ActiveCell.Offset(1, 0).Range("A1").Select
ActiveSheet.Paste
Else
ActiveCell.Rows("1:1").EntireRow.Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Sheet3").Select
ActiveCell.Offset(1, 0).Range("A1").Select
ActiveSheet.Paste
End If
Sheets("Sheet1").Select
ActiveCell.Offset(1, 1).Select
Loop
End Sub
假设:
1-主要数据在sheet1内部
2-有sheet2和sheet3可用于将数据复制到
3-在最后一行数据之后为每个单元格添加一行xxx,否则它是一个无限循环
4- Name1和Name2在B列中