有没有一种方法可以打开另一个工作簿中的链接图片而不必打开它?

时间:2019-01-23 13:49:40

标签: excel vba

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

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

因此,我通过在WB1中实现一个按钮来打开和关闭WB2并更新链接的方法来解决此问题。

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

SELECT 
  p.ProductId
, p.TotalDiamondWeight
, p.GemType
, p.StoneCut
FROM
(
    SELECT ProductId,
           Caption,
           Value,
           ROW_NUMBER() OVER (PARTITION BY Caption ORDER BY Value) RN
    FROM @temp
) x
PIVOT
(
    MAX(Value)
    FOR Caption IN ([StoneCut], [GemType], [TotalDiamondWeight])
) p;

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

还有其他方法可以更新链接的图片吗?这让我发疯了,因为在我尝试节省时间和自动刷新WB2图形之前,它工作得很好。

1 个答案:

答案 0 :(得分:0)

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

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