You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用VBA自动化将Excel嵌入的ABC.exe对象复制粘贴到指定文件夹?

实现Excel中嵌入的EXE对象自动复制到指定文件夹

问题背景

  • 已将ABC.exe作为OLE对象插入到Excel工作簿的Board工作表,对象在名称框中显示为Object 1,编辑栏公式为=EMBED("Packager Shell Object","")
  • 手动右键复制该对象后可直接粘贴到目标文件夹,无报错或提示
  • 已完成将对象复制到剪贴板的VBA代码:
Sub Copy_OleObject_to_Clipboard()
    Dim ws As Worksheet: Set ws = ActiveSheet
    Dim ole As OLEObject
    Set ole = ws.OLEObjects(1)
    ole.Copy
End Sub

可行的VBA实现方案

以下代码可直接将嵌入的EXE对象保存到指定文件夹,避免剪贴板操作的兼容性问题:

Sub SaveEmbeddedExeToFolder()
    Dim ws As Worksheet
    Dim oleObj As OLEObject
    Dim targetPath As String
    
    ' 指定目标文件夹路径,需确保路径末尾带反斜杠
    targetPath = "C:\YourTargetFolder\"
    
    ' 定位到目标工作表和OLE对象
    Set ws = ThisWorkbook.Worksheets("Board")
    Set oleObj = ws.OLEObjects("Object 1") ' 也可使用索引ws.OLEObjects(1)
    
    ' 利用Packager Shell Object自身方法保存文件
    oleObj.Object.Save targetPath & "ABC.exe"
End Sub

补充优化

如果需要自动创建不存在的目标文件夹,可添加以下逻辑:

' 检查并创建目标文件夹
If Dir(targetPath, vbDirectory) = "" Then
    MkDir targetPath
End If

内容的提问来源于stack exchange,提问作者Peace

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 15:14:52