2

部品番号を参照として使用する在庫シートを設定しました。部品番号と一致すると、現在の在庫シートの式に入る日付付きのログアウトシートがあります。

人的エラーと部品番号の入力ミスにより、ログアウトされた値が使用されているかどうかを知りたいです。おそらく、使用されている場合は緑色のチェックまたはライト、使用されていない場合は赤色の X またはライトで表示されます。

したがって、次のことを行うものが必要になります。

=IF cell A1 is used in any formula in Sheet1!B:B THEN mark with green check, IF cell A1 is not used in any formula in Sheet1!B:B THEN mark it with a red X
4

2 に答える 2

0

このコード:

  • 最初のシートの A1:A10 の各セルを、2 番目のワークシートに直接依存するかどうかをテストします (他のシートに中間参照が存在するかどうかをテストするには、さらに改良する必要があります)。
  • sheet2 に依存している場合はこれらのセルを赤く色付けし、そうでない場合は内部フォーマットをクリアします

テストする地域を設定する

    Sub test()
    Dim rng1 As Range
    Dim rng2 As Range
    Set rng1 = Sheets(1).[a1:a10]
    Application.ScreenUpdating = False
    For Each rng2 In rng1.Cells
    If oneCellsDependents(rng2) Then
    rng2.Interior.Color = vbRed
    Else
    rng2.Interior.Color = xlNone
    End If
    Next
    Application.ScreenUpdating = True
    End Sub

依存ファインダー

  Function oneCellsDependents(rng1 As Range) As Boolean
 ' written by Bill Manville
 ' With edits from PaulS
 ' this procedure  finds the  cells which are the direct precedents of the active cell
Dim rLast As Range, iLinkNum As Long, iArrowNum As Long
Dim bNewArrow As Boolean
Application.ScreenUpdating = False
rng1.ShowDependents
Set rLast = rng1
iArrowNum = 1
iLinkNum = 1
bNewArrow = True
Do
If oneCellsDependents Then Exit Do
    Do
        Application.Goto rLast
        On Error Resume Next
        rng1.NavigateArrow TowardPrecedent:=False, ArrowNumber:=iArrowNum, LinkNumber:=iLinkNum
        If Err.Number > 0 Then Exit Do
        On Error GoTo 0
        If rLast.Address(external:=True) = ActiveCell.Address(external:=True) Then Exit Do
        bNewArrow = False
                   If ActiveCell.Parent.Name = Sheets(2).Name Then
            oneCellsDependents = True
               Exit Do
        End If
        iLinkNum = iLinkNum + 1 ' try another  link
    Loop
    If bNewArrow Then Exit Do
    iLinkNum = 1
    bNewArrow = True
    iArrowNum = iArrowNum + 1 'try another arrow
Loop
rLast.Parent.ClearArrows
Application.Goto rLast
End Function
于 2012-09-13T03:39:38.593 に答える
0

このマイクロソフトのヘルプにより、要件に非常に近づくことができます。

于 2012-09-12T17:02:22.587 に答える