条件格式 VBA
Conditional Formatting VBA
我正在构建一个表单来输入帐户信息和订单状态。每一行都需要根据同一行中其中一个单元格的值进行更改,在本例中是单元格 "H"。我可以使用条件格式轻松实现这一点,但我认为这会使文件比编程代码大。我尝试了一些选择,但此刻我可以说我迷路了。我附上了一个我想要完成的例子。我现在不知道该怎么做,所以如果有人能帮助我,我将不胜感激。
一个 Worksheet_Change 事件宏¹ 处理工作中的变化sheet。
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Columns("H")) Is Nothing Then
On Error GoTo bm_Safe_Exit
Application.EnableEvents = False
Dim trgt As Range
For Each trgt In Intersect(Target, Columns("H"))
Select Case LCase(trgt.Value2)
Case "credit"
Cells(trgt.Row, "A").Resize(1, 12).Interior.ColorIndex = 45
Case "completed"
Cells(trgt.Row, "A").Resize(1, 12).Interior.ColorIndex = 10
Case Else
Cells(trgt.Row, "A").Resize(1, 12).Interior.Pattern = xlNone
End Select
Next trgt
End If
bm_Safe_Exit:
Application.EnableEvents = True
End Sub
¹ 事件宏属于作品sheet或作品代码sheet;不是模块代码 sheet。对于作品sheet 代码sheet,右键单击作品sheet 的名称选项卡并选择查看代码。当 VBE 打开时,它将在前台显示工作 sheet 代码 sheet(通常标题类似于 Book1 - Sheet1 (Code))。粘贴代码并进行任何个性化调整,然后点击 Alt+Q 到 return 到作品sheet。
我正在构建一个表单来输入帐户信息和订单状态。每一行都需要根据同一行中其中一个单元格的值进行更改,在本例中是单元格 "H"。我可以使用条件格式轻松实现这一点,但我认为这会使文件比编程代码大。我尝试了一些选择,但此刻我可以说我迷路了。我附上了一个我想要完成的例子。我现在不知道该怎么做,所以如果有人能帮助我,我将不胜感激。
一个 Worksheet_Change 事件宏¹ 处理工作中的变化sheet。
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Columns("H")) Is Nothing Then
On Error GoTo bm_Safe_Exit
Application.EnableEvents = False
Dim trgt As Range
For Each trgt In Intersect(Target, Columns("H"))
Select Case LCase(trgt.Value2)
Case "credit"
Cells(trgt.Row, "A").Resize(1, 12).Interior.ColorIndex = 45
Case "completed"
Cells(trgt.Row, "A").Resize(1, 12).Interior.ColorIndex = 10
Case Else
Cells(trgt.Row, "A").Resize(1, 12).Interior.Pattern = xlNone
End Select
Next trgt
End If
bm_Safe_Exit:
Application.EnableEvents = True
End Sub
¹ 事件宏属于作品sheet或作品代码sheet;不是模块代码 sheet。对于作品sheet 代码sheet,右键单击作品sheet 的名称选项卡并选择查看代码。当 VBE 打开时,它将在前台显示工作 sheet 代码 sheet(通常标题类似于 Book1 - Sheet1 (Code))。粘贴代码并进行任何个性化调整,然后点击 Alt+Q 到 return 到作品sheet。