如何用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
相关产品推荐
相关产品推荐

