【VBA】VBA编写的,将一列中相同的内容的行提取出来单独生成文件
数据如上图所示,点击RUN后的运行结果如下:
得到该文件夹,文件夹内容如上图。
代码如下:
Private Sub Command_OLIVER() Dim arr arr = Range("A1:C" & [a65536].End(3).Row) Dim i As Long, wName As String, wPath As String wName = "分类汇总" & Format(Now(), "hhmmss") Dim dc As Object, wb As Workbook, n As Long Set dc = CreateObject("Scripting.dictionary") wPath = ThisWorkbook.Path & "\" & wName MkDir wPath For i = 2 To UBound(arr) If Not dc.exists(arr(i, 1)) Then Set wb = Workbooks.Add wb.SaveAs wPath & "\" & arr(i, 1) & ".xls" '001 wb.Sheets(1).Name = arr(i, 1) '填写表头 wb.Sheets(1).[a1] = arr(1, 1) wb.Sheets(1).[b1] = arr(1, 2) wb.Sheets(1).[c1] = arr(1, 3) dc.Add arr(i, 1), "" End If With Workbooks(arr(i, 1) & ".xls").Sheets(1) '002 n = .[a65536].End(3).Row + 1 .Cells(n, 1) = arr(i, 1) .Cells(n, 2) = arr(i, 2) .Cells(n, 3) = arr(i, 3) End With Next Dim ar ar = dc.keys For i = 0 To UBound(ar) Workbooks(ar(i) & ".xls").Close True '003 Next End Sub
调用该sub
Sub 调用() Command_OLIVER End Sub
注意:必须在同一模块中call该sub,因为上述sub为私有的,局部方法.
作者:奔跑的金鱼
声明:书写博客不易,转载请注明出处,请支持原创,侵权将追究法律责任
个性签名:人的一切的痛苦,本质上都是对自己无能的愤怒
如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架