【发布时间】:2018-09-24 15:04:21
【问题描述】:
我正在执行一个项目,在该项目中我构建了一张房屋库存位置地图。一张纸上是地图,另一张纸上是从查询中提取的 X 天内未移动的库存。我想要做的是用红色突出显示地图上的位置,该位置对应于包含旧库存的位置。
每个例子:
我尝试使用条件格式来执行此操作,但无法想出一个公式来完成此操作,我还编写了以下代码,希望获得相同的结果但没有成功(运行此代码会导致 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 的经验很少,如果这离题了,请见谅。任何想法或建议将不胜感激
【问题讨论】:
-
不用嵌套循环,只需遍历您的
Locations范围并使用Match函数(使用WorksheetFunctions调用它)检查它是否存在于Old_Inv中。如果Match返回一个数字,将颜色改为红色
标签: vba excel conditional-formatting