前言
我覺得不需要啥開場白了,大家直接看演示視頻先。
你們覺得以后這樣和Excel打交道怎么樣,
沒人能拒絕一個自己會做表格的的Excel吧?
想不想自己也做一個?
視頻說明與原理講解
好,正文開始。
首先要對剛才的視頻聲明幾點(diǎn):
1、演示效果是實(shí)效,但是運(yùn)行速度加快了2倍。
2、我接入的是第3方的DeepSeek畢竟官方最近太卡了。
3、實(shí)際運(yùn)行的時候,有一定幾率報錯(大約10%),調(diào)整一下命令就有機(jī)會跑通。
我講解一下這個功能的實(shí)現(xiàn)原理:
如果你有一點(diǎn)編程基礎(chǔ)或者雖然沒有基礎(chǔ)但是有興趣學(xué)習(xí),接著往下看。
如果你只想拿個現(xiàn)成的模板,建議跳到下一節(jié)。
第1步,使用VBA的 inputbox 就行
第2步和第3步,其實(shí)我在最近的文章里已經(jīng)反復(fù)介紹過了,歡迎復(fù)習(xí):
這一步不浪費(fèi)篇幅贅述了,反正我后面會把代碼分享給你們。
第4步,需要從API返回內(nèi)容中提取到具體的VBA代碼,還要優(yōu)化成可執(zhí)行的文本。
第5步,需要操控當(dāng)前工作簿的VBA工程,創(chuàng)建模塊填入代碼并且運(yùn)行
核心代碼如下:
Function RunDynamicCode(incodeStr As String) As Boolean On Error GoTo ErrorHandler Dim CodeStr As String CodeStr = Replace(incodeStr, '\n', vbCrLf) CodeStr = Replace(CodeStr, '`', '’') ' 從代碼字符串中提取過程名 Dim procName As String procName = ExtractProcedureName(CodeStr) If procName = '' Then MsgBox '無法從代碼字符串中提取過程名!', vbCritical Exit Function End If ' 獲取當(dāng)前工作簿的 VBProject Dim vbProj As VBProject Set vbProj = Application.VBE.ActiveVBProject ' 創(chuàng)建一個新的標(biāo)準(zhǔn)模塊 Dim vbComp As VBComponent Set vbComp = vbProj.VBComponents.Add(vbext_ct_StdModule) ' 將代碼字符串添加到模塊中 vbComp.CodeModule.AddFromString CodeStr ' 運(yùn)行動態(tài)添加的子過程 Application.Run procName ' 刪除動態(tài)創(chuàng)建的模塊 vbProj.VBComponents.Remove vbComp RunDynamicCode = True Exit FunctionErrorHandler: MsgBox 'Error: ' & Err.Description, vbCritical ' 確保模塊被刪除 If Not vbComp Is Nothing Then vbProj.VBComponents.Remove vbComp End If RunDynamicCode = FalseEnd Function
最后,自定義功能區(qū),添加一個按鈕并指定我們的主程序 AuTotask ,就可以運(yùn)行了。這一步也可以參閱之前的文章。
額外提示:
1、本程序需要在VBA工程里面引用這些庫。
2、需要在【Excel選項(xiàng)】→【信任中心設(shè)置】→【宏設(shè)置】里面,勾選“信任對VBA工程對象模型的訪問”。
3、目前各大云平臺如火山引擎、騰訊云、百度千帆、硅基流動都提供DeepSeek的API,大家按需選用。如果你要問我用的是哪家的?我的答案是,我全都有!事實(shí)上,如果接入Kimi\豆包\ChatGPT都行。
技術(shù)細(xì)節(jié)就聊這么多。
寫給看不懂上面內(nèi)容的小伙伴
自從2年前ChatGPT問世后,我講過很多AI相關(guān)的課程,也寫過圖書。
但是因?yàn)榇蟛糠秩瞬荒芎芊奖愕挠蒙螩hatGPT,而國內(nèi)的友商產(chǎn)品不是那么給力,所以沒有上過我課程的很多人對AI的能力是質(zhì)疑的。
我很高興今天有DeepSeek這樣的中國人自己做的AI能到達(dá)全球領(lǐng)先水平,也很高興中國用戶也開始認(rèn)真學(xué)習(xí)和使用AI了。
盡管今天的DeepSeek有點(diǎn)卡,但肯定是暫時的。
你可能聽過一句話“淘汰你的不是AI,而是用AI的人”。
但你有沒有想過,用AI的人也是分成很多種的?
第1種,是只會把AI當(dāng)搜索引擎來用的人,只會簡單的提問-獲答,只能用到AI的5%的功能。他們往往因?yàn)椴粫釂枺瑢?dǎo)致AI的回答效果不好。
第2種,是熟悉各個場景下各種AI的常用功能,把多個AI組合起來用的人。
能到這一步已經(jīng)超越身邊90%的人,比如你用好WPS AI, 用好Copilot,這種集成在辦公軟件里面的AI,開箱即用。
但顯然也是有局限性的,比如這么強(qiáng)大的DeepSeek,那個對話窗口能提供什么功能,你就只能用什么功能。最多只能在提示詞上面動動腦筋。
那我為啥這幾天反復(fù)在講如何把DeepSeek嵌入到Office/WPS呢?
有些人覺得這樣的操作毫無必要,甚至可笑,還有罵我瞎折騰的。
現(xiàn)在我告訴你,還有第3種用AI的人,他們可以借助智能體、借助編程,直接訪問市面上這些AI,獲取AI 100%的能力,用到任何場景。
舉個簡單的例子,你上傳一個文檔給DeepSeek,請他總結(jié)歸納,這活兒用DeepSeek的網(wǎng)頁端就能做對不。如果你有100個1000個文檔呢?
這時候,哪怕你只會簡單的代碼,JS/VBA/Python,對你來說就毫無難度。
ExcelHome分享了26年的技巧和經(jīng)驗(yàn),我們一直在做的事情,就是希望大家知道成長的路徑,能夠每天進(jìn)步一點(diǎn)點(diǎn)。
在這個需要終生學(xué)習(xí)的年代,多抬頭看看路,早日擁抱新技術(shù),是每個人都需要堅(jiān)持的事情。
這就是為啥我不厭其煩的各種介紹通過API接入DeepSeek到Office的原因,我希望大家都能超越自己的身邊人。
我不知道寫幾篇簡單的文章又省力又閱讀量高嗎?比如在DeepSeek網(wǎng)頁里提問,得到一篇文章/一個公式/一段代碼,再回到Office操作。
但你學(xué)了以后,頂多成為我剛才說的第1種人。
親愛的小伙伴們,你想成為第幾種用AI的人呢?
請?jiān)谑謾C(jī)微信登錄投票
親愛的小伙伴們,你想成為第幾種用AI的人呢? 單選
第1種,只會簡單問答
第2種,熟練掌握多種AI工具的組合用法
第3種,用代碼操控AI,隨心所欲完成任務(wù)