有没有办法看到一个单元格是否在公式中使用,并用条件格式标记

我已经build立并使用零件编号作为参考的库存表,当它与零件编号匹配时,会在当前库存表中列入公式的标注date的工作表。

由于input零件编号时出现人为错误和错误,我想知道是否使用了注销的值,如果使用的话可能是绿色的检查或指示灯,如果没有使用,则是红色的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 

这个微软的帮助可以让你非常接近你的要求。

此代码:

  • testing第一张A1:A10中的每个单元是否与第二张工作表有直接依赖关系(需要进一步改进以testing是否存在其他纸张上的中间参考)
  • 如果依赖于sheet2,则将这些单元格的颜色设为红色,否则将清除内部格式

设置要testing的区域

  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