将工作表图片复制到新建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
相关产品推荐
相关产品推荐

