库存宏/条件格式

Inventory Macro / Conditional Formatting

我正在进行一个项目,在该项目中我制作了一张房屋库存位置地图。一个 sheet 是地图,另一个 sheet 是从查询中提取的 X 天未移动的库存。我想要做的是用与包含旧库存的位置相对应的红色突出显示地图上的位置。

每个示例:

Map_Locations

Old_Inventory_With_Location

我尝试使用条件格式来做到这一点,但无法想出一个公式来实现这一点,我还编写了以下代码希望获得相同的结果但没有成功(运行 这导致 excel 崩溃):

Sub Highlight()

Dim Locations As Range
Dim Old_Inv As Range
Dim MyRange As Range
Dim MyRange2 As Range

Set Locations = Worksheets("Sheet3").Range("C4:CD71")
Set Old_Inv = Worksheets("Sheet2").Range("C2:C20000")

For Each MyRange In Locations
    For Each MyRange2 In Old_Inv
        If MyRange.Value = MyRange2.Value Then
            With Selection.Interior
                .Pattern = xlSolid
                .PatternColorIndex = xlAutomatic
                .ThemeColor = xlThemeColorDark2
            End With

        End If

        Next MyRange2
        Next MyRange

End Sub

请注意,我使用 VBA 的经验很少,如果这离题太远,我深表歉意。任何想法或建议将不胜感激

对于条件格式:

  • Select 您所在位置 C4 的单元格 sheet
  • 打开条件格式, 管理规则,新规则
  • Select "用公式判断带单元格 格式化”(最后一个选项)
  • 在框中键入以下公式 "format values where this formula is true"(注意你可能有 如果您有不同的语言设置,可以更改公式)
    =NOT(ISNA(VLOOKUP(C4, Sheet2!$C:$C00,1,FALSE)))
  • 单击格式按钮 select 您想要的颜色(在“填充”选项卡上)
  • 按两次确定并在字段 "Applies to"
  • 中输入 =$C:$CD

公式解释:

VLOOKUP 将在 Sheet2(第二个参数)的给定范围内搜索单元格 C4(第一个参数)的值。它returns这个值(第3个参数,公式中的1告诉这个)如果找到确切的值(第4个参数必须是FALSE)。

如果找不到值,excel returns #NA 由周围的 IsNA 函数检查。因为这会格式化列表中值为 not 的单元格,所以用 NOT- 函数包围整个内容,这将恢复结果。