继昨日分享了DeepSeek的简易操作后,有热心粉丝询问:是否可将DeepSeek嵌入至Excel中?答案是肯定的。我们只需借助VBA编程,便能轻松实现这一功能。以下代码示例由DeepSeek自动生成,通过调用其API,我们能在A1单元格内输入数据,随后点击执行按钮,即可在B1单元格中查看处理结果。接下来,让我们一起探索具体操作步骤。

一、获取DeepSeek API
要实现DeepSeek与Excel的集成,首先需要获取DeepSeek的API。这很简单,只需访问其官网,在右上角找到并点击【API开放平台】。在右侧,你会看到【API keys】的选项,点击它会出现一个设置窗口。在这里,你可以为API键设置一个易于记忆的名字,并复制这个API键,稍后将需要在VBA编程中使用它。

二、嵌入VBA编程
在Excel中,按下ALT+F11快捷键以打开VBA编辑器。在左侧空白区域点击,选择【插入】并点击【模块】。随后,将以下代码粘贴到模块窗口中,并确保将【你的API】替换为你之前获取的DeepSeek API地址。

Sub CallDeepSeekAPI()
Dim question As StringDim response As StringDim url As StringDim apiKey As StringDim http As ObjectDim content As StringDim startPos As LongDim endPos As Long' 获取 A1 单元格中的问题question = ThisWorkbook.Sheets(1).Range("A1").Value' 设置 API 的 URL 和 API 密钥url = "https://api.deepseek.com/v1/chat/completions" ' 替换为实际的 API URLapiKey = "你的API" ' 替换为你的 API 密钥' 创建 HTTP 请求对象Set http = CreateObject("MSXML2.XMLHTTP")' 设置请求头http.Open "POST", url, Falsehttp.setRequestHeader "Content-Type", "application/json"http.setRequestHeader "Authorization", "Bearer " & apiKey' 设置请求体Dim requestBody As StringrequestBody = "{" & _ """model"": ""deepseek-chat"",""messages"": [{" & _ """role"": ""user"",""content"": """ & question & """}]}"' 发送请求http.send requestBody' 获取响应(此处需进一步处理响应内容,如解析JSON等)
End Sub
If http.Status = 200 Then
response = http.responseText
' 从 JSON 字符串中提取 content 字段
startPos = InStr(response, "content") + Len("content")
endPos = InStr(startPos, response, """")
content = Mid(response, startPos, endPos - startPos)
' 将结果写入 A2 单元格
ThisWorkbook.Sheets(1).Range("A2").Value = content
Else
' 如果请求失败,显示错误信息
ThisWorkbook.Sheets(1).Range("A2").Value = "Error: " & http.Status & " - " & http.statusText
End If
End Sub
注意:在原始代码中,存在一些格式和语法错误,我已经进行了相应的修正。同时,为了更好地从JSON字符串中提取"content"字段,我增加了计算"startPos"和"endPos"的逻辑。
三、按钮设置
首先,点击【开发工具】选项卡,接着选择【插入】功能。之后,直接新建一个按钮,并将其指定给【CallDeepSeekAPI】这个宏即可完成设置。
热门跟贴