按指定列拆分EXCEL文件
vba吧
全部回复
仅看楼主
level 1
如图所示,按指定列拆分EXCEL文件,运行时出错,请高手帮指点代码怎么改!
2025年02月14日 03点02分 1
level 12
报错有提示啊,你好歹发出来
2025年02月14日 05点02分 2
level 12
value改成cstr(value)再试试
2025年02月14日 05点02分 3
value改成cstr(value)了还是一样的错误,帮再看看,谢谢!
2025年02月14日 05点02分
@贴吧用户_7GNR5C6 我看着像豆包ai的,继续问它
2025年02月14日 06点02分
@贴吧用户_7GNR5C6 要调试的话要配合你的文件,我这光看也不知道
2025年02月14日 06点02分
level 12
或者你继续问ai,叫它再修改
2025年02月14日 05点02分 4
level 1
2025年02月14日 05点02分 5
level 12
'好的,以下是将上述代码中使用的字典( 网页链接 )替换为 Collection 集合来实现按"U"列拆分工资表为多个新工作簿的 VBA 代码:
'
'VBA
Sub SplitByColumnUToWorkbooks()
Dim lastRow As Long
Dim i As Long
Dim ws As Worksheet
Dim colUnique As New Collection
Dim uniqueValue As Variant
Dim newWb As Workbook
Dim newWs As Worksheet
Dim sourceSheetName As String
Dim isDuplicate As Boolean
Set ws = ThisWorkbook.Worksheets(1) '假设工资表在工作簿的第一个工作表,可根据实际情况修改
sourceSheetName = 网页链接 lastRow = ws.Cells(Rows.Count, "U").End(xlUp).Row '获取"U"列最后一个有数据的行号
'遍历"U"列,提取唯一值并存入 Collection 集合
For i = 2 To lastRow '假设第一行是表头
isDuplicate = False
uniqueValue = ws.Cells(i, "U").Value
On Error Resume Next
网页链接 uniqueValue, CStr(uniqueValue)
If 网页链接 <> 0 Then
isDuplicate = True
End If
On Error GoTo 0
' If Not isDuplicate Then
' 网页链接 uniqueValue, CStr(uniqueValue)
' End If
Next i
'为每个唯一值创建新工作簿并复制数据
For Each uniqueValue In colUnique
Set newWb = 网页链接 '创建新工作簿
Set newWs = newWb.Worksheets(1) '新工作簿的第一个工作表
网页链接 = uniqueValue
ws.Rows(1).Copy newWs.Rows(1) '复制表头
For i = 2 To lastRow
If ws.Cells(i, "U").Value = uniqueValue Then
ws.Rows(i).Copy newWs.Rows(newWs.Cells(Rows.Count, 1).End(xlUp).Row + 1)
End If
Next i
'保存新工作簿(这里假设保存在当前文件夹下,可根据需要修改保存路径)
网页链接 网页链接 & "\" & uniqueValue & ".xlsx"
网页链接 Next uniqueValue
'以下代码可选,用于删除原工作表,若不需要删除可注释掉
网页链接 = False
' ThisWorkbook.Worksheets(sourceSheetName).Delete '没事不要乱删除原始表
网页链接 = True
End Sub
'Print
'
'代码说明:
'
'1. 声明并创建了一个 Collection 对象 colUnique 用于存储"U"列中的唯一值
'2. 在遍历"U"列数据时,通过 On Error Resume Next 来尝试将每个值添加到 colUnique 集合中 如果添加时出现错误(即 网页链接 <> 0 ),则说明该值是重复值,将 isDupli
2025年02月14日 08点02分 6
level 12
我已经按你的ai代码风格,重新叫Ai写了,通过了测试
2025年02月14日 08点02分 7
没用筛选,用的是逐行复制
2025年02月14日 08点02分
level 12
代码老是显示不全,把图片也发给你
2025年02月14日 09点02分 8
@贴吧用户_7GNR5C6 事实上我不喜欢这代码,今天没带u盘,不然把我自己写的代码发上来
2025年02月14日 13点02分
感谢!测试通过了!
2025年02月14日 13点02分
太牛了,大大提升了效率!
2025年02月14日 13点02分
1