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

将工作表图片复制到新建Excel Application对象的代码纠错求助

修正VBA代码实现跨Excel应用复制粘贴图片

问题分析

原代码的核心错误是调用了源工作表ws_d的Paste方法,这会把图片粘贴回源工作表所在的工作簿,而非新建的ExcelSheet应用对象中的工作簿。

修正后的代码

假设ExcelSheet已经是初始化完成的新Excel应用对象(已执行Set ExcelSheet = New Excel.Application并新建了工作簿),修正代码如下:

' 复制源工作表中的第一个图片/形状
ws_d.Shapes(1).Copy

' 定位到新Excel应用中的目标工作表(示例为新建工作簿的第一个工作表)
Dim targetWs As Worksheet
Set targetWs = ExcelSheet.Workbooks(1).Sheets(1)

' 在目标工作表的指定位置粘贴图片
targetWs.Paste Destination:=targetWs.Range("B1")

关键注意事项

  • 确保ExcelSheet已正确初始化并创建了工作簿:
    Dim ExcelSheet As Excel.Application
    Set ExcelSheet = New Excel.Application
    ExcelSheet.Workbooks.Add ' 新建工作簿
    ExcelSheet.Visible = True ' 可选:让新Excel窗口可见,方便调试
    
  • 如果需要精准定位图片,可通过形状名称替换索引:ws_d.Shapes("图片1").Copy(替换为实际图片名称)
  • 粘贴后可按需调整图片位置或大小,比如:targetWs.Shapes(targetWs.Shapes.Count).Top = targetWs.Range("B1").Top

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 20:50:27