如何在Excel VBA 2010中干净地断开链接

时间:2013-03-11 20:59:57

标签: excel-vba vba excel

我尝试以编程方式断开所有链接,然后在工作簿中重新创建它们。

我有一些VBA代码可以干净地破坏Excel 2010中的Excel链接,但是我总是遇到的麻烦是,每当我重新开始链接时,Excel都会提示我。

这就是我正在做的事情:

这是BreakLinks程序:

Sub BreakLinks()
    vLinks = ActiveWorkbook.LinkSources(Type:=xlLinkTypeExcelLinks)

    ' Break all links in the active workbook.
    For lLink = LBound(vLinks) To UBound(vLinks)
        ActiveWorkbook.BreakLink _
            Name:=vLinks(lLink), _
            Type:=xlLinkTypeExcelLinks
    Next lLink
end sub

这是主要部分:     * 请注意,我指定thisFormula的最后一行是Excel提示我的文件对话框,迫使我取消或选择我的主工作簿我链接回...

    BreakLinks    ' call proc to break the links
    thisFormula = "='[DataMaster - Data Template.xlsm]MASTER'!$B" + Trim(Str(myRow))     ' reference back to master workbook
    Range("A1").Formula = thisFormula       ' i.e. "='[DataMaster - Data Template.xlsm]MASTER'!$B32"
    Range("B1").Formula = "=D1"
    Range("C1").Formula = "=E1/100"
    thisFormula = "=BDH('[DataMaster - Data Template.xlsm]MASTER'!$A" + Trim(Str(myRow)) + "," + charCode + "PX_LAST" + charCode + ",FirstDate," + charCode + " " + charCode + "," + charCode + "cols=2;rows=50" + charCode + ")"
    Range("D1").Formula = thisFormula

我想知道如何避免这个非常烦人的Excel提示,并干净地重新创建我的公式/链接。

1 个答案:

答案 0 :(得分:2)

您可以尝试使用Application.DisplayAlerts:

Application.DisplayAlerts = False
'<statements that may invoke alerts>
Application.DisplayAlerts = True