Mus*_*old 5 excel vba excel-2010
我需要清理一个非常复杂的 Excel 文件。
为了能够擦除单元格,我需要确保它没有在工作簿中的某处使用。我知道可以通过进入公式审核 > 跟踪依赖项来确定一个单元格是否在另一个单元格的公式中使用,但是如果在以下上下文中使用该单元格,则这不起作用:
这 2 个 Excel 功能在工作簿中经常使用。
您知道找出这些依赖项的方法吗?
尝试这样的事情,不是 100%,但看起来它可以通过简单的测试起作用
Sub DependantTest()
For Each i In DependantOnValidation(Range("A1"))
Debug.Print i
Next i
End Sub
Run Code Online (Sandbox Code Playgroud)
使用此功能
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
Run Code Online (Sandbox Code Playgroud)
对于 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
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1063 次 |
最近记录: |