昨天蘭色分享了讓Deepseek設(shè)置公式的方法,順利完成了要求。今天再試一個更難的表格處理。
如下圖表中,要求按A列項目內(nèi)容拆分成多個表格并另存為單獨的excel文件,文件名為A列的值。
要求拆分后果:
具體操作步驟:
1、讓DeepSeek生成代碼
打開https://www.deepseek.com/,點別針先把表格文件上傳(上傳表格截圖也可以)
把問題提交給deepSeek(一定要描述清楚)
很快思路和VBA代碼就生成了,而且提供了代碼的詳細(xì)使用說明
Sub SplitDataByProject()
Dim dict As Object
Dim wsSource As Worksheet
Dim lastRow As Long, i As Long
Dim key As Variant
Dim newWb As Workbook
Dim newWs As Worksheet
Dim savePath As String
'設(shè)置字典用于存儲唯一項目值
Set dict = CreateObject("Scripting.Dictionary")
Set wsSource = ThisWorkbook.Sheets("A表") '根據(jù)實際表名修改
'獲取數(shù)據(jù)最后一行
lastRow = wsSource.Cells(wsSource.Rows.Count, "A").End(xlUp).Row
'收集唯一項目值(排除標(biāo)題行)
For i = 2 To lastRow
If Not dict.exists(wsSource.Cells(i, 1).Value) Then
dict.Add wsSource.Cells(i, 1).Value, Nothing
End If
Next i
'設(shè)置保存路徑(默認(rèn)為當(dāng)前工作簿路徑)
savePath = ThisWorkbook.Path & "\"
Application.ScreenUpdating = False
Application.DisplayAlerts = False
'循環(huán)處理每個項目
For Each key In dict.keys
'創(chuàng)建新工作簿
Set newWb = Workbooks.Add
Set newWs = newWb.Sheets(1)
'復(fù)制標(biāo)題行
wsSource.Rows(1).Copy newWs.Rows(1)
'篩選并復(fù)制數(shù)據(jù)
wsSource.Range("A1:F" & lastRow).AutoFilter Field:=1, Criteria1:=key
wsSource.UsedRange.Offset(1).SpecialCells(xlCellTypeVisible).Copy newWs.Range("A2")
'清除篩選
wsSource.AutoFilterMode = False
'保存文件
newWb.SaveAs savePath & key & ".xlsx"
newWb.Close
Next key
'恢復(fù)設(shè)置
Application.ScreenUpdating = True
Application.DisplayAlerts = True
MsgBox "已拆分生成 " & dict.Count & " 個文件!"
End Sub
2、按上面說明執(zhí)行代碼
按Alt+f11打開VBE編程器(WPS需要安裝WPS VBA插件)
插入菜單-添加模塊后,把代碼粘貼的右側(cè)空白處中,點三角運(yùn)行
只需1秒,在當(dāng)前文件夾下就生成4個新文件
打開后正是拆分后的表格,DeepSeek任務(wù)順利完成。
如果代碼需要保存在excel工作簿內(nèi),文件需要另存為啟用宏的工作簿
蘭色說:有了VBA加持,DeepSeep可以幫我們完成很多復(fù)雜工作,除了本文的拆分,合并多個excel文件等操作也可以搞定。