在Excel中更改图片链接的路径

时间:2016-05-10 17:36:49

标签: vba excel-2010

我已使用插入图片手动将大量链接的图片粘贴到2010 Excel电子表格中 - >选择图片位置 - >链接到文件。这些图片是报告的一部分。我每季度使用R更新图片,我的报告会自动更新。完美。

我现在需要更改保存图表的目录,并且需要更新链接。由于其中大约有200个(这是一份大报告),我想在VBA中这样做。虽然我可以循环浏览图片(ActiveSheet.Pictures),但我似乎无法找到链接/地址。任何想法我怎么能看到底层文件位置所以我可能会改变它 - 引用必须存储在某处(注意 - 这些似乎不会存储为超链接)。

2 个答案:

答案 0 :(得分:2)

  

知道如何查看底层文件位置,以便我可以更改它 - 引用必须存储在某处

  1. 创建新文件夹
  2. 粘贴.xlsx或.xlsm excel文件的副本
  3. 使用zip工具解压缩文件(我使用7-Zip)
  4. 删除.xlsx或.xlsm文件(可选)
  5. 现在我们将原始文件的所有组成部分都作为纯文本xml文件和文件夹
  6. 在文件夹xl \ drawings \ _rels中,有一些文件名为drawing2.xml.rels,drawing3.xml.rels,...
  7. 似乎每个文件都对应一张工作表,并以这种格式存储图像的路径:

    目标="文件:/// C:\ Users \用户名为myUsername \文件\ MyImageFolder \我%20Image%20Name.png"

    1. 使用文本编辑器更改路径
    2. 将文件夹的所有内容压缩为.zip
    3. 将扩展名更改为原始.xlsx或.xlsm
    4. 这些步骤可以通过VBA,AutoIt等自动完成,这里有一些参考:

答案 1 :(得分:0)

Excel在这种情况下使用公式栏作为链接,就像在两个不同工作表中的范围之间链接一样。当我选择链接图片时,下面的公式填充在公式栏中:

=[TrialWB.xlsm]Sheet1!$C$3:$E$6

您可以使用以下代码访问Shape的公式并插入图片的特定名称:

ActiveSheet.Pictures("Picture Name").Formula = "=[TrialWB.xlsm]Sheet1!$C$4:$E$6"

在更新链接时,您必须更改公式中的文件路径。这可能看起来像:

ActiveSheet.Pictures("Picture Name").Formula = "='C:\Reports2015\[TrialWB.xlsm]Sheet1'!$C$4:$E$6"

更改为

ActiveSheet.Pictures("Picture Name").Formula = "='C:\Reports2016\[TrialWB.xlsm]Sheet1'!$C$4:$E$6"

这个问题可能对访问公式有一些进一步的帮助: Excel: create image from cell range

这是一个用于公式文件路径编辑的有用Microsoft页面:https://support.office.com/en-us/article/Create-an-external-reference-link-to-a-cell-range-in-another-workbook-c98d1803-dd75-4668-ac6a-d7cca2a9b95f