【发布时间】:2018-07-25 14:53:23
【问题描述】:
我有一个 BOM 的 Excel 电子表格,我正在尝试有条件地格式化。数据的布局使得 A 列是项目编号。由于 BOM 有替代项,因此存在重复编号。我想浏览电子表格,对于每个项目编号,在 F 列中找到带有“活动”的项目并将它们突出显示为绿色并隐藏其他行上的替代项。如果没有“活动”项目,我想将项目突出显示为黄色并保持显示。我有当前的 vba 脚本来突出显示。如果您查看示例数据,我基本上希望每个项目编号有一行显示活动部分,但如果没有活动部分,则以黄色显示历史或停产部分
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim icolor As Integer
Dim lastrow As Long
Dim i As Integer
Dim cell As Range
Dim sheetname As String
sheetname = Application.ActiveSheet.Name
With Worksheets(sheetname)
lastrow = .Cells(.Rows.Count, "A").End(xlUp).Row
End With
Application.ScreenUpdating = False
For Each cell In Range("F1:F" & lastrow)
Select Case cell.Value
Case Is = "Active"
cell.EntireRow.Interior.ColorIndex = 10
Case Is = "Status"
cell.EntireRow.Interior.ColorIndex = 15
Case Is = ""
cell.EntireRow.Interior.ColorIndex = 2
cell.EntireRow.Hidden = True
Case Else
cell.EntireRow.Interior.ColorIndex = 6
End Select
Next cell
Application.ScreenUpdating = True
End Sub
【问题讨论】:
-
您能否提供您的数据图像以及您的预期结果?这可能有助于其他人了解一切如何运作以及您在寻找什么。
-
我上传了一张截图,但由于我的声誉太低,我无法嵌入图片
-
我继续为您编辑它。一旦我的编辑被批准,您应该会看到它嵌入。欢迎来到本站!
-
为什么要在每次选择更改时都这样做?不应该是
Worksheet_Change吗?由于 col F 中的单元格不会自动更改。 -
excel 电子表格是数据库的输出,所以我希望能够将 vba 脚本复制到每个电子表格,以便在我更改选择时它会运行一次。这样我就可以确保我不会更改单元格值来让它运行。
标签: excel vba formatting conditional