【问题标题】:Is there a way to update linked pictures from another workbook without having to open it?有没有办法从另一个工作簿更新链接图片而无需打开它?
【发布时间】:2019-01-23 21:55:31
【问题描述】:

我在 WB1 中有一个报告仪表板,其中链接了另一个工作簿 WB2 中的图表图片(粘贴/特殊粘贴/链接图片)

销售团队正在更新 WB2,除非两个工作簿都打开,否则 WB1 中的链接图片不会更新。

所以我通过在 WB1 中实现一个按钮来打开和关闭 WB2 并更新链接来解决问题。

现在由于某种原因停止工作。我所做的唯一更改是将 WB2 更改为带有宏的工作簿(现在它会在添加新值时自动更新所有图表)。

Sub Gumb214_Klikni()
'Button to open and close WB2
   Dim xWb As Workbook
   Dim wbName As String
   On Error Resume Next
   Set xWb = Workbooks.Open("path to link")
   wbName = xWb.Name
   Workbooks("name of folder").Close
   If Err.Number <> 0 Then
      MsgBox "This workbook does not exist!", vbInformation, "ERROR"
     Err.Clear
   Else
    MsgBox "TEXT"
  End If
End Sub

问题是,即使我返回到非宏 WB2 的旧方式,按钮也会停止刷新图片链接,并且它们只会在您手动打开它们或同时打开两个工作簿时刷新。

还有其他方法可以更新链接的图片吗?这让我抓狂,因为在我尝试节省时间和自动刷新 WB2 图表之前它运行良好。

【问题讨论】:

  • 不,您需要打开它来更新它们。您可以做的是在另一个 Excel 实例中打开目标工作簿,您可以对用户隐藏它,使其看起来好像没有打开工作簿

标签: excel vba


【解决方案1】:

扩展我的评论。以这种方式更新它们将使最终用户看起来无缝,并给人一种目标工作簿没有“打开”的错误印象

Sub Gumb214_Klikni()
    'Button to open and close WB2
    Dim xlApp As New Excel.Application
    Dim xWb As Workbook
    Dim wbName As String


    On Error Resume Next
    With xlApp
        .Visible = False
        Set xWb = .Workbooks.Open("path to link")
    End With
    wbName = xWb.Name
    Workbooks("name of folder").Close
    If Err.Number <> 0 Then
        MsgBox "This workbook does not exist!", vbInformation, "ERROR"
        Err.Clear
    Else
        ' Update pictures here via whatever method and save&close the destination workbook
        MsgBox "TEXT"
    End If

    ' Quit the second instance of the application
    With xlApp
        .Quit
    End With
End Sub

【讨论】:

  • 感谢您的投入。我收到一个错误,即使我填写了相对路径,文件也不存在。有没有办法更新我的宏以隐藏 WB2 并在 WB1 关闭时关闭它?
  • 您需要使用绝对路径打开工作簿。
  • 这到底是什么意思?我正在使用与我的原始宏一起使用的服务器上文件的完整路径。
  • 抱歉。相对路径是指向您所描述的绝对路径的位置。您需要检查文件路径。尝试打开工作簿并在其上执行Activeworkbook.Fullname 并确保路径匹配
  • Private Sub Workbook_Open() MsgBox ActiveWorkbook.FullName End Sub 这将返回我正在使用的相同路径。所以我不知道为什么我一直找不到错误文件。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-05-09
  • 2019-05-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-02-22
  • 2013-08-02
相关资源
最近更新 更多