我需要清理一个非常复杂的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