微信扫码
和创始人交个朋友
我要投稿
利用DeepSeek和VBA自动化Excel数据处理,提高工作效率。 核心内容: 1. Excel数据处理的自动化需求与挑战 2. DeepSeek在解决Excel自动化问题中的应用 3. 使用VBA代码实现DeepSeek解决方案的过程与结果
Sub GenerateCommissionSheets()
Dim srcWB As Workbook, newWB As Workbook
As Worksheet
As Long
Dim matchedRows As New Collection
Worksheet
colIndex As Variant
Set srcWB = ThisWorkbook ' 假设代码在当前工作簿运行
Set infoSheet = srcWB.Sheets("信息总表")
Set templateSheet = srcWB.Sheets("委托单")
获取用户输入的使用单位
InputBox("请输入要筛选的使用单位名称:", "输入筛选条件") =
If criteria = "" Then Exit Sub
在信息总表中查找匹配行
With infoSheet
.Cells(.Rows.Count, "A").End(xlUp).Row =
For i = 2 To lastRow ' 假设第1行为标题行
criteria Then matchedRows.Add i =
Next i
End With
If matchedRows.Count = 0 Then
vbInformation
Exit Sub
End If
创建新工作簿
Set newWB = Workbooks.Add
False =
While newWB.Sheets.Count > 1
newWB.Sheets(1).Delete
Wend
True =
为每个匹配行创建委托单
For Each Item In matchedRows
Before:=newWB.Sheets(1)
Set targetSheet = newWB.Sheets(1)
With targetSheet
"委托单" & newWB.Sheets.Count =
查找所有自动获取单元格
For Each cell In .UsedRange
Then
cell.Offset(0, -1) =
Application.Match(leftCell.Value, infoSheet.Rows(1), 0) =
Then
infoSheet.Cells(Item, colIndex).Value =
Else
"数据未找到" =
End If
End If
Next cell
End With
Next Item
删除初始空白表并整理工作簿
newWB.Sheets(1).Delete
newWB.Sheets(1).Activate
=Environ("USERPROFILE") & "\Desktop\" & criteria & "委托单.xlsx" :
vbInformation
End Sub
Sub GenerateCommissionSheetsPlus()
Dim srcWB As Workbook, newWB As Workbook
As Worksheet
As Long
Dim matchedRows As New Collection
Dim Item As Variant
Worksheet
colIndex As Variant
Set srcWB = ThisWorkbook ' 假设代码在当前工作簿运行
Set infoSheet = srcWB.Sheets("信息总表")
Set templateSheet = srcWB.Sheets("委托单")
获取用户输入的使用单位
InputBox("请输入要筛选的使用单位名称:", "输入筛选条件") =
If criteria = "" Then Exit Sub
在信息总表中查找匹配行
With infoSheet
.Cells(.Rows.Count, "A").End(xlUp).Row =
For i = 2 To lastRow ' 假设第1行为标题行
criteria Then matchedRows.Add i =
Next i
End With
If matchedRows.Count = 0 Then
vbInformation
Exit Sub
End If
创建新工作簿
Set newWB = Workbooks.Add
False =
While newWB.Sheets.Count > 1
newWB.Sheets(1).Delete
Wend
True =
为每个匹配行创建委托单
For Each Item In matchedRows
after:=newWB.Sheets(Worksheets.Count)
newWB.Sheets(Worksheets.Count) =
With targetSheet
"委托单" & newWB.Sheets.Count - 1 =
查找所有自动获取单元格
For Each cell In .UsedRange
Then
cell.Offset(0, -1) =
Application.Match(leftCell.Value, infoSheet.Rows(1), 0) =
Then
infoSheet.Cells(Item, colIndex).Value =
Else
"数据未找到" =
End If
End If
Next cell
End With
Next Item
删除初始空白表并整理工作簿
newWB.Sheets(1).Delete
newWB.Sheets(1).Activate
=Environ("USERPROFILE") & "\Desktop\" & criteria & "委托单.xlsx" :
vbInformation
End Sub
Sub GenerateCommissionSheets()
Dim srcWB As Workbook, newWB As Workbook
As Worksheet
As Long
Dim matchedRows As New Collection
Worksheet
colIndex As Variant
Dim rowNum As Variant ' 声明循环变量
Set srcWB = ThisWorkbook
Set infoSheet = srcWB.Sheets("信息总表")
Set templateSheet = srcWB.Sheets("委托单")
InputBox("请输入要筛选的使用单位名称:", "输入筛选条件") =
If criteria = "" Then Exit Sub
查找匹配行(优化空值处理)
With infoSheet
.Cells(.Rows.Count, "A").End(xlUp).Row =
For i = 2 To lastRow
criteria Then =
matchedRows.Add i
End If
Next i
End With
If matchedRows.Count = 0 Then
vbInformation
Exit Sub
End If
创建新工作簿(增加错误处理)
On Error Resume Next
Set newWB = Workbooks.Add
False =
Do While newWB.Sheets.Count > 1
newWB.Sheets(1).Delete
Loop
True =
生成委托单(优化命名逻辑)
For Each rowNum In matchedRows
Before:=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).Value =
End If
Else
"字段匹配失败" =
End If
End If
Next cell
End With
Next rowNum
保存优化(处理特殊字符)
newWB.Sheets(1).Delete
newWB.Sheets(1).Activate
Filename:=Environ("USERPROFILE") & "\Desktop\" & _
"-") & "委托单.xlsx", _
FileFormat:=xlOpenXMLWorkbook
vbInformation
End Sub
Sub GenerateCommissionSheetsPlus()
Dim srcWB As Workbook, newWB As Workbook
As Worksheet
As Long
Dim matchedRows As New Collection
Dim Item As Variant
Worksheet
colIndex As Variant
Set srcWB = ThisWorkbook ' 假设代码在当前工作簿运行
Set infoSheet = srcWB.Sheets("信息总表")
Set templateSheet = srcWB.Sheets("委托单")
获取用户输入的使用单位
InputBox("请输入要筛选的使用单位名称:", "输入筛选条件") =
If criteria = "" Then Exit Sub
在信息总表中查找匹配行
With infoSheet
.Cells(.Rows.Count, "A").End(xlUp).Row =
For i = 2 To lastRow ' 假设第1行为标题行
criteria Then matchedRows.Add i =
Next i
End With
If matchedRows.Count = 0 Then
vbInformation
Exit Sub
End If
创建新工作簿
Set newWB = Workbooks.Add
False =
While newWB.Sheets.Count > 1
newWB.Sheets(1).Delete
Wend
True =
为每个匹配行创建委托单
For Each Item In matchedRows
after:=newWB.Sheets(Worksheets.Count)
newWB.Sheets(Worksheets.Count) =
With targetSheet
"委托单" & newWB.Sheets.Count - 1 =
查找所有自动获取单元格
For Each cell In .UsedRange
Then
Set leftCell = cell.Offset(0, -1)
colIndex = Application.Match(leftCell.Value, infoSheet.Rows(1), 0)
If Not IsError(colIndex) Then
cell.Value = infoSheet.Cells(Item, colIndex).Value
Else
"数据未找到" =
End If
End If
Next cell
End With
Next Item
删除初始空白表并整理工作簿
newWB.Sheets(1).Delete
newWB.Sheets(1).Activate
vbInformation
=ThisWorkbook.Path & "\" & criteria & "委托单.xlsx" :
SaveChanges:=True
End Sub
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费场景POC验证,效果验证后签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2024-10-24
2024-04-24
2024-07-11
2024-09-27
2024-04-19
2024-06-22
2024-06-26
2024-04-18
2024-12-21
2024-09-06
2025-02-21
2025-02-13
2025-01-21
2025-01-08
2024-12-27
2024-11-28
2024-11-05
2024-10-30