微信扫码
添加专属顾问
我要投稿
利用DeepSeek和VBA自动化Excel数据处理,提高工作效率。 核心内容: 1. Excel数据处理的自动化需求与挑战 2. DeepSeek在解决Excel自动化问题中的应用 3. 使用VBA代码实现DeepSeek解决方案的过程与结果
Sub GenerateCommissionSheets()Dim srcWB As Workbook, newWB As WorkbookAs WorksheetAs LongDim matchedRows As New CollectionWorksheetcolIndex As VariantSet srcWB = ThisWorkbook ' 假设代码在当前工作簿运行Set infoSheet = srcWB.Sheets("信息总表")Set templateSheet = srcWB.Sheets("委托单")获取用户输入的使用单位= InputBox("请输入要筛选的使用单位名称:", "输入筛选条件")If criteria = "" Then Exit Sub在信息总表中查找匹配行With infoSheet= .Cells(.Rows.Count, "A").End(xlUp).RowFor i = 2 To lastRow ' 假设第1行为标题行= criteria Then matchedRows.Add iNext iEnd WithIf matchedRows.Count = 0 ThenvbInformationExit SubEnd If创建新工作簿Set newWB = Workbooks.Add= FalseWhile newWB.Sheets.Count > 1newWB.Sheets(1).DeleteWend= True为每个匹配行创建委托单For Each Item In matchedRowsBefore:=newWB.Sheets(1)Set targetSheet = newWB.Sheets(1)With targetSheet= "委托单" & newWB.Sheets.Count查找所有自动获取单元格For Each cell In .UsedRangeThen= cell.Offset(0, -1)= Application.Match(leftCell.Value, infoSheet.Rows(1), 0)Then= infoSheet.Cells(Item, colIndex).ValueElse= "数据未找到"End IfEnd IfNext cellEnd WithNext Item删除初始空白表并整理工作簿newWB.Sheets(1).DeletenewWB.Sheets(1).Activate:=Environ("USERPROFILE") & "\Desktop\" & criteria & "委托单.xlsx"vbInformationEnd Sub
Sub GenerateCommissionSheetsPlus()Dim srcWB As Workbook, newWB As WorkbookAs WorksheetAs LongDim matchedRows As New CollectionDim Item As VariantWorksheetcolIndex As VariantSet srcWB = ThisWorkbook ' 假设代码在当前工作簿运行Set infoSheet = srcWB.Sheets("信息总表")Set templateSheet = srcWB.Sheets("委托单")获取用户输入的使用单位= InputBox("请输入要筛选的使用单位名称:", "输入筛选条件")If criteria = "" Then Exit Sub在信息总表中查找匹配行With infoSheet= .Cells(.Rows.Count, "A").End(xlUp).RowFor i = 2 To lastRow ' 假设第1行为标题行= criteria Then matchedRows.Add iNext iEnd WithIf matchedRows.Count = 0 ThenvbInformationExit SubEnd If创建新工作簿Set newWB = Workbooks.Add= FalseWhile newWB.Sheets.Count > 1newWB.Sheets(1).DeleteWend= True为每个匹配行创建委托单For Each Item In matchedRowsafter:=newWB.Sheets(Worksheets.Count)= newWB.Sheets(Worksheets.Count)With targetSheet= "委托单" & newWB.Sheets.Count - 1查找所有自动获取单元格For Each cell In .UsedRangeThen= cell.Offset(0, -1)= Application.Match(leftCell.Value, infoSheet.Rows(1), 0)Then= infoSheet.Cells(Item, colIndex).ValueElse= "数据未找到"End IfEnd IfNext cellEnd WithNext Item删除初始空白表并整理工作簿newWB.Sheets(1).DeletenewWB.Sheets(1).Activate:=Environ("USERPROFILE") & "\Desktop\" & criteria & "委托单.xlsx"vbInformationEnd Sub
Sub GenerateCommissionSheets()Dim srcWB As Workbook, newWB As WorkbookAs WorksheetAs LongDim matchedRows As New CollectionWorksheetcolIndex As VariantDim rowNum As Variant ' 声明循环变量Set srcWB = ThisWorkbookSet infoSheet = srcWB.Sheets("信息总表")Set templateSheet = srcWB.Sheets("委托单")= InputBox("请输入要筛选的使用单位名称:", "输入筛选条件")If criteria = "" Then Exit Sub查找匹配行(优化空值处理)With infoSheet= .Cells(.Rows.Count, "A").End(xlUp).RowFor i = 2 To lastRow= criteria ThenmatchedRows.Add iEnd IfNext iEnd WithIf matchedRows.Count = 0 ThenvbInformationExit SubEnd If创建新工作簿(增加错误处理)On Error Resume NextSet newWB = Workbooks.Add= FalseDo While newWB.Sheets.Count > 1newWB.Sheets(1).DeleteLoop= True生成委托单(优化命名逻辑)For Each rowNum In matchedRowsBefore:=newWB.Sheets(1)Set targetSheet = newWB.Sheets(1)With targetSheet= Left("委托单_" & criteria, 25) & "_" & (newWB.Sheets.Count - 1)增强字段匹配逻辑For Each cell In .UsedRange> 0 Then= cell.Offset(0, -1)= Application.Match(Trim(leftCell.Value), infoSheet.Rows(1), 0)Then处理日期格式IsDate(infoSheet.Cells(rowNum, colIndex).Value) Then= Format(infoSheet.Cells(rowNum, colIndex).Value, "yyyy-mm-dd")Else= infoSheet.Cells(rowNum, colIndex).ValueEnd IfElse= "字段匹配失败"End IfEnd IfNext cellEnd WithNext rowNum保存优化(处理特殊字符)newWB.Sheets(1).DeletenewWB.Sheets(1).ActivateFilename:=Environ("USERPROFILE") & "\Desktop\" & _"-") & "委托单.xlsx", _FileFormat:=xlOpenXMLWorkbookvbInformationEnd Sub
Sub GenerateCommissionSheetsPlus()Dim srcWB As Workbook, newWB As WorkbookAs WorksheetAs LongDim matchedRows As New CollectionDim Item As VariantWorksheetcolIndex As VariantSet srcWB = ThisWorkbook ' 假设代码在当前工作簿运行Set infoSheet = srcWB.Sheets("信息总表")Set templateSheet = srcWB.Sheets("委托单")获取用户输入的使用单位= InputBox("请输入要筛选的使用单位名称:", "输入筛选条件")If criteria = "" Then Exit Sub在信息总表中查找匹配行With infoSheet= .Cells(.Rows.Count, "A").End(xlUp).RowFor i = 2 To lastRow ' 假设第1行为标题行= criteria Then matchedRows.Add iNext iEnd WithIf matchedRows.Count = 0 ThenvbInformationExit SubEnd If创建新工作簿Set newWB = Workbooks.Add= FalseWhile newWB.Sheets.Count > 1newWB.Sheets(1).DeleteWend= True为每个匹配行创建委托单For Each Item In matchedRowsafter:=newWB.Sheets(Worksheets.Count)= newWB.Sheets(Worksheets.Count)With targetSheet= "委托单" & newWB.Sheets.Count - 1查找所有自动获取单元格For Each cell In .UsedRangeThenSet leftCell = cell.Offset(0, -1)colIndex = Application.Match(leftCell.Value, infoSheet.Rows(1), 0)If Not IsError(colIndex) Thencell.Value = infoSheet.Cells(Item, colIndex).ValueElse= "数据未找到"End IfEnd IfNext cellEnd WithNext Item删除初始空白表并整理工作簿newWB.Sheets(1).DeletenewWB.Sheets(1).ActivatevbInformation:=ThisWorkbook.Path & "\" & criteria & "委托单.xlsx"SaveChanges:=TrueEnd Sub
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业
2026-06-26
企业微信的AI,在玩一种很新的东西
2026-06-24
继微信小微后,企微内测 Agent 大圆
2026-06-24
麦肯锡:80%都在用AI,为什么0%跑通?
2026-06-24
AI产品经理不仅仅是做交互,你得知道智能体做出来以后,如何接进业务系统?
2026-06-23
一个AI销冠数字员工上岗后,销售团队会发生什么变化?
2026-06-23
当 Agent 替你值班:基于 Devix 构建 7x24 自动化运维 Harness Engineering
2026-06-23
咨询|你的 Agent 为什么死在生产:写给「帮甲方落地 Agent」的公司
2026-06-22
“离开了,不要再回来”:当老同事说大厂只剩下HR和AI
2026-04-24
2026-04-08
2026-04-08
2026-06-08
2026-05-15
2026-04-01
2026-05-15
2026-04-23
2026-04-07
2026-05-06
2026-06-24
2026-06-24
2026-06-23
2026-06-17
2026-06-10
2026-06-08
2026-05-29
2026-05-27