Database 条件格式VBA

Database 条件格式VBA,database,excel,vba,formatting,userform,Database,Excel,Vba,Formatting,Userform,我正在创建一个表单来输入帐户信息和订单状态。每一行都需要根据同一行中一个单元格的值进行更改,在本例中为单元格“H”。我可以很容易地通过条件格式实现这一点,但我认为这会使文件比编程代码更大。我尝试了一些选择,但我现在可以说我迷路了。我附上一个我想要完成的例子。我现在不知道该怎么办,所以如果有人能帮助我,我会非常感激 事件宏ª处理工作表上的更改 Option Explicit Private Sub Worksheet_Change(ByVal Target As Range) If No

我正在创建一个表单来输入帐户信息和订单状态。每一行都需要根据同一行中一个单元格的值进行更改,在本例中为单元格“H”。我可以很容易地通过条件格式实现这一点,但我认为这会使文件比编程代码更大。我尝试了一些选择,但我现在可以说我迷路了。我附上一个我想要完成的例子。我现在不知道该怎么办,所以如果有人能帮助我,我会非常感激

事件宏ª处理工作表上的更改

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


事件宏属于工作表或工作簿代码表;不是模块代码表。对于工作表代码工作表,右键单击工作表的“名称”选项卡,然后选择“查看代码”。当VBE打开时,它将在前台显示工作表代码表(通常标题类似于Book1-Sheet1(代码))。粘贴代码并进行任何个性化调整,然后点击Alt+Q返回工作表。

事件宏ª处理工作表上的更改

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



事件宏属于工作表或工作簿代码表;不是模块代码表。对于工作表代码工作表,右键单击工作表的“名称”选项卡,然后选择“查看代码”。当VBE打开时,它将在前台显示工作表代码表(通常标题类似于Book1-Sheet1(代码))。粘贴代码并进行任何个性化调整,然后点击Alt+Q返回工作表。

感谢您的回复,我认为我可能做错了什么,因为我没有更改行的颜色。我尝试的是根据“H”的值将颜色范围从“A”更改为“L”,它应该适用于整个工作簿,一次一行。我添加了一个图像和一些关于如何实现代码的基本说明。通过点击我在原始回复中提供的链接,可以获得更多信息。现在我明白了,我已经实现了代码,工作起来很有魅力。谢谢你,我真的很感谢你的时间来帮助我。谢谢你的回复,我想我可能做错了什么,因为我没有改变排的颜色。我尝试的是根据“H”的值将颜色范围从“A”更改为“L”,它应该适用于整个工作簿,一次一行。我添加了一个图像和一些关于如何实现代码的基本说明。通过点击我在原始回复中提供的链接,可以获得更多信息。现在我明白了,我已经实现了代码,工作起来很有魅力。谢谢你,我真的很感谢你抽出时间来帮助我。
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