如何在Excel中找到单元格的所有依赖性(也有条件的格式和数据验证)



我需要清理一个非常复杂的Excel文件。

要删除单元格,我需要确保它在工作簿中没有使用。我知道可以通过在公式审核>跟踪依赖中查找是否在另一个单元格中使用一个单元格>

  • 在另一个单元格的数据验证中用于下拉列表的范围的一部分
  • 在另一个单元格的条件格式的公式部分中。

这两个Excel功能在工作簿中经常使用。

您知道一种找到这些依赖性的方法吗?

尝试这样的东西,而不是100%,但看起来它可以从简单的测试中起作用

Sub DependantTest()
For Each i In DependantOnValidation(Range("A1"))
    Debug.Print i
Next i
End Sub

使用此功能

Function DependantOnValidation(rngLookAt As Excel.Range) As Collection
Dim ws As Worksheet Dim rInspect As Range Dim rWorking As Range Dim rIntersect As Range
Set ws = ThisWorkbook.Worksheets("sheet1")
On Error Resume Next
Set DependantOnValidation = New Collection
For Each rInspect In ws.Range("a1:z1")
    Set rWorking = Range(Replace(rInspect.Validation.Formula1, "=", vbNullString))
    If Not rWorking Is Nothing Then
        Set rIntersect = Application.Intersect(rngLookAt, rWorking)
        DependantOnValidation.Add rInspect.Address
    End If
    Set rWorking = Nothing
     Next rInspect
End Function

对于这样的CF,不完成

If rInspect.FormatConditions.Count > 0 Then
    For Each fCondition In rInspect.FormatConditions
        If fCondition.Formula1 <> "" Then
            If InStr(1, fCondition.Formula1, rngLookAt.Address(True, True)) > 0 Or _
                    InStr(1, fCondition.Formula1, rngLookAt.Address(False, True)) > 0 Or _
                        InStr(1, fCondition.Formula1, rngLookAt.Address(True, False)) > 0 Then
            End If
        End If
    Next fCondition
End If

最新更新