Sub BreakLinks()
Dim wb As Workbook
Set wb = Application.ActiveWorkbook
If Not IsEmpty(wb.LinkSources(xlExcelLinks)) Then
For Each link In wb.LinkSources(xlExcelLinks)
wb.BreakLink link, xlLinkTypeExcelLinks
Next link
End If
End Sub
此代码会中断活动工作簿的所有外部链接。如何在特定工作表中的选定范围内执行此操作?
另外,我想首先在列表中显示外部链接(从所选范围),然后是2个按钮:1表示删除它们,第2表示取消。
任何帮助都将不胜感激。
答案 0 :(得分:2)
LinkSources(xlExcelLinks)
是Workbook
- MSDN Workbook.LinkSources的一种方法,因此它不会向小区提供.BreakLink
。
但是,您可以使用给定范围(givenRange.SpecialCells(xlCellTypeFormulas)
)中的公式遍历单元格,并检查它们是否包含链接公式所需的[
。如果他们拥有它,只需将公式写为值:
Option Explicit
Sub BreakLinks()
Dim givenRange As Range
Set givenRange = Selection
Dim myCell As Range
For Each myCell In givenRange.SpecialCells(xlCellTypeFormulas)
If InStr(myCell.Formula, "[") Then
Debug.Print myCell.Address
myCell.Value2 = myCell.Value2
End If
Next myCell
End Sub
答案 1 :(得分:1)
解决方案:
2:在特定工作表上设置自定义范围,并使用以下方法遍历该范围内的单元格:
.SpecialCells(xlCellTypeFormulas)
3:使用以下命令查找包含外部链接的单元格:
InStr(1, rCell.Formula, "[") > 0 Then
编辑基本上@Vityata在代码中解释了什么(打败我吧:))