Excel情報(bào)局 職場聯(lián)盟Excel ![]() 大家好,最近DeepSeek(深度求索)AI智能在抖音火爆了,聽說美國的ChatGPT都感覺到了危機(jī),最重要的是DeepSeek是開源免費(fèi)的。智能化更加優(yōu)秀。 那么如何運(yùn)用DeepSeek實(shí)現(xiàn)在Excel中對工作簿內(nèi)所有工作表進(jìn)行批量合并呢? 如下圖所示: 有“銷售部”、“財(cái)務(wù)部”、“生產(chǎn)部”3張分表,我們想要將這3張分表合并到新的總表中,3張分表的首行都為格式和內(nèi)容相同的標(biāo)題行。并且合并后的總表也只能有首行一行標(biāo)題行。 DeepSeek Chat是由深度求索公司開發(fā)的AI智能助手。DeepSeek Chat基于DeepSeek大語言模型開發(fā),可以進(jìn)行自然語言處理和文本生成,回答各種問題,提供信息查詢、對話交流、知識問答等服務(wù)。 我們來摘要一段DeepSeek前期思考,整個(gè)過程感覺像人一樣思考: 【嗯,用戶有一個(gè)Excel工作簿,里面有多個(gè)工作表,每個(gè)工作表的第一行是標(biāo)題行。用戶想把這些不同工作表里的數(shù)據(jù)合并到一個(gè)新的工作表中,并且保留首行作為標(biāo)題行。需要寫一段VBA代碼來實(shí)現(xiàn)這個(gè)功能。 首先,我需要理解每個(gè)工作表中的數(shù)據(jù)結(jié)構(gòu)。比如,“銷售部”、“財(cái)務(wù)部”、“生產(chǎn)部”都有相同的列結(jié)構(gòu):部門、姓名、工號。數(shù)據(jù)行從第二行開始,每個(gè)工作表有三行數(shù)據(jù),但實(shí)際情況下可能有更多。我需要確保代碼能處理不同數(shù)量的數(shù)據(jù)行。 接下來,合并數(shù)據(jù)的步驟應(yīng)該是這樣的:新建一個(gè)工作表,作為匯總表。然后遍歷每一個(gè)現(xiàn)有的工作表,跳過第一個(gè)標(biāo)題行,把數(shù)據(jù)復(fù)制到匯總表中。 需要注意的是,匯總表的標(biāo)題行只需要出現(xiàn)一次,所以第一次復(fù)制時(shí)要包含標(biāo)題,之后的不再包含,或者先單獨(dú)復(fù)制標(biāo)題行,再處理數(shù)據(jù)。 可能的陷阱:如果工作表中有除了數(shù)據(jù)之外的其它內(nèi)容,比如中間有空行或者其它格式,可能會影響結(jié)果。但根據(jù)用戶提供的數(shù)據(jù)示例,每個(gè)工作表的結(jié)構(gòu)是規(guī)范的,所以暫時(shí)不需要處理這些特殊情況。 另外,要確保VBA代碼能夠動態(tài)識別所有的工作表,排除掉可能存在的非數(shù)據(jù)工作表。例如,用戶可能有一個(gè)匯總表已經(jīng)存在,或者在代碼運(yùn)行前需要先檢查是否存在,若存在則刪除或覆蓋】 DeepSeek給出我們最終的VBA代碼解決方案: 代碼說明: 創(chuàng)建名為"匯總"的新工作表,若已存在則清空內(nèi)容。 從第一個(gè)工作表復(fù)制標(biāo)題行到匯總表首行。 遍歷所有工作表(排除匯總表自身)。 自動識別每個(gè)工作表的數(shù)據(jù)范圍(從A2到C列最后一行)。 將數(shù)據(jù)依次追加到匯總表中。 最終自動調(diào)整列寬并彈出完成提示。
DeepSeek還針對一些特殊情況給出的一些注意事項(xiàng),很貼心: 注意事項(xiàng): 確保所有工作表結(jié)構(gòu)一致(列順序:部門、姓名、工號)。 標(biāo)題行必須位于每個(gè)工作表的第一行。 支持任意行數(shù)的數(shù)據(jù)合并。 結(jié)果保存在新建的"匯總"工作表中。 代碼會跳過沒有數(shù)據(jù)的工作表(僅含標(biāo)題行的工作表)。 我們根據(jù)下面的“運(yùn)行方法”,在Excel或WPS表格中進(jìn)行操作,最終即可完成多工作表合并: 運(yùn)行方法: 按 Alt+F11 打開VBA編輯器。 插入新模塊。 粘貼代碼。 按F5運(yùn)行宏。 查看生成的"匯總"工作表。 |
|