如果没有链接,保存时跳过一个macros来断开链接

我有一个成本计算电子表格,我将其中一些成本计算项目链接到其他工作簿。 我有一个macros,所以当我保存成本表,它打破了链接,所以前进的成本将被locking,而不是更新。 但是,如果我重新保存电子表格,则会进行debugging,并且说没有可以中断的链接。 我试图找出一种方法来绕过这个断开链接macros后第一次保存链接已经被打破。 我现在唯一能做的就是当我试图再次保存的时候,把这个macros的部分删除掉。 下面是我的整个保存macros,它的第一部分是打破链接的部分。 任何帮助深表感谢。

Sub Save() 'To break links to Ultra-D ActiveWorkbook.BreakLink Name:="H:\JUNK\Quotes\Al Costing\Ultra-D\Ultra-D.xlsx", Type:=xlExcelLinks 'To Save Range("D8").Select ActiveCell.FormulaR1C1 = "=NOW()" Selection.Copy Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Application.CutCopyMode = False Range("D7").Select Dim Proposal As String Dim Customer As String Dim System As String Proposal = Range("D3").Value Customer = Range("D4").Value System = Range("D5").Value ActiveWorkbook.SaveAs Filename:= _ "C:\Users\walkerja\Desktop\Al Quotes\" & Proposal & " " & Customer & " SCR-Al-" & System & " Tsoc.xlsm", FileFormat:= _ xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False End Sub 

用下面的代替你的ActiveWorkBook.BreakLink......

如果有任何链接,那么LinkCheck(1)中将会有数据,如果没有数据,那么它将是空的。

  If Not IsEmpty(ActiveWorkbook.LinkSources) Then ActiveWorkbook.BreakLink Name:="H:\JUNK\Quotes\Al Costing\Ultra-D\Ultra-D.xlsx", Type:=xlExcelLinksEnd End if 

谢谢Jean-Pierre的回答。 我只想在下面发布我的最终代码。

 'To break links Dim MyLinks As Variant MyLinks = ActiveWorkbook.LinkSources(Type:=xlLinkTypeExcelLinks) If Not IsEmpty(ActiveWorkbook.LinkSources) Then For I = 1 To UBound(MyLinks) ActiveWorkbook.BreakLink Name:=MyLinks(I), Type:=xlLinkTypeExcelLinks Next I End If