微信扫码
添加专属顾问
我要投稿
利用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+中大型企业
2025-12-15
人人都能看懂的AI手册:谷歌用 10 个业务场景,讲清AI智能体怎么提效
2025-12-11
招了个AI设计员工,我的一人公司终于配齐了设计部!【附6大用法】
2025-12-11
四个实践案例:快消头部企业纷纷开始将AI应用到业务场景,成效显著!
2025-12-08
咨询 | BCG:如何Build企业级Agent(内附PDF报告)
2025-12-07
悦点科技任鑫琦:收入过亿的 toB Agent 正在重构人机协作
2025-12-05
Anthropic工程师自曝:我每天上班,就是在努力让自己失业
2025-12-04
Claude 母公司内部万字报告:AI 把工程师变成了包工头
2025-12-04
不止于酷炫:B端AI产品的本质--一场关于效率与成本的精准革命
2025-09-22
2025-10-21
2025-10-29
2025-11-30
2025-09-30
2025-10-16
2025-12-04
2025-11-29
2025-12-04
2025-12-01