是的,可以使用VBA宏来实现更新另一个工作簿中的链接图片而无需打开它。以下是一个示例代码:
Sub UpdateLinkedPicture()
Dim wbSource As Workbook
Dim wbTarget As Workbook
Dim wsTarget As Worksheet
Dim shp As Shape
' 打开源工作簿
Set wbSource = Workbooks.Open("源工作簿路径")
' 打开目标工作簿
Set wbTarget = Workbooks.Open("目标工作簿路径")
' 设置目标工作表
Set wsTarget = wbTarget.Worksheets("目标工作表名称")
' 遍历目标工作表中的所有形状
For Each shp In wsTarget.Shapes
' 检查形状是否为链接图片
If shp.Type = msoLinkedPicture Then
' 获取链接图片的链接地址
Dim linkAddress As String
linkAddress = shp.LinkFormat.SourceFullName
' 检查链接地址是否与源工作簿相同
If linkAddress = wbSource.FullName Then
' 更新链接图片
shp.LinkFormat.Update
End If
End If
Next shp
' 关闭工作簿,保存更改
wbSource.Close SaveChanges:=True
wbTarget.Close SaveChanges:=True
End Sub
请注意,上述代码中的"源工作簿路径"和"目标工作簿路径"需要替换为实际的文件路径。此外,"目标工作表名称"也需要替换为要更新链接图片的目标工作表的名称。
这段代码通过遍历目标工作表中的所有形状,检查是否为链接图片,并且链接地址与源工作簿相同。如果是,则使用LinkFormat.Update
方法来更新链接图片。
这是一种更新另一个工作簿中链接图片的方法,而无需打开它。
领取专属 10元无门槛券
手把手带您无忧上云