Excel 如何为总是会增值的列编写vba

Excel 如何为总是会增值的列编写vba,excel,vba,outlook,conditional-formatting,Excel,Vba,Outlook,Conditional Formatting,我有一个Excel电子表格,其中有一列是我每天输入的和引擎小时数。我需要设置一个VBA代码,作为发动机维修的警告系统。我想让电池在300度时变成琥珀色,400度时变成深橙色,500度时变成红色。我还需要它生成一封电子邮件在500。我的问题是该列的值总是会增加。一旦电子邮件以500发送,它将需要重置为800、900和1000,以此类推。这有可能吗 提前谢谢。 跟踪根据我前面的评论,您可以使用基于公式的条件格式来完成此操作: 要自动发送电子邮件,您可以根据自己的规范修改以下VBA: Private

我有一个Excel电子表格,其中有一列是我每天输入的和引擎小时数。我需要设置一个VBA代码,作为发动机维修的警告系统。我想让电池在300度时变成琥珀色,400度时变成深橙色,500度时变成红色。我还需要它生成一封电子邮件在500。我的问题是该列的值总是会增加。一旦电子邮件以500发送,它将需要重置为800、900和1000,以此类推。这有可能吗

提前谢谢。
跟踪

根据我前面的评论,您可以使用基于公式的条件格式来完成此操作:

要自动发送电子邮件,您可以根据自己的规范修改以下VBA:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim oApp As Object
Dim oMail As Object
If Target.Column = 1 Then 'If the change was made in your entry column
    If Target.Value Mod 500 = 0 Then
        Set oApp = CreateObject("Outlook.Application")
        Set oMail = oApp.CreateItem(0)
            With oMail
                .To = "YouRecipient@TheirDomain.com, Sample@Gmail.com"
                .Subject = "Engine Service Needed"
                .Body = "The engine mileage is currently at " _
                        + CStr(Target.Value) _
                        + " Miles And Needs to be Serviced"
                .Display 'You can replace the word display with the word send if you don't want to preview
            End With
    End If
End If
End Sub
根据评论更新:


是的,这在VBA中是可能的。通过命名范围和/或客户数据/xml和VBA的某种组合,这当然是可能的。到目前为止你试过什么?我没试过多少。我知道当单元格的值小于以下值时如何写入vba,但我不知道从何处开始写入该值,因为该值不断增加私有子工作表\u ChangeByVal Target as Range If Target.Cells.Count>1,然后退出Sub If Not Application.IntersectRangeM4:M368,如果IsNumericTarget.Value和Target.Value<1000,则Target为Nothing,如果End为End,则调用Fuel_LevelW01D End,如果End为End,则End为End。如果End为Sub,则我尝试了条件格式,但它不会自动增加值。如果只使用数字的mod,则不必更改使用的数字。因此,您的条件格式公式将是=MODA1500=300,然后是琥珀色,=MODA1500=400,然后是深橙色,=MODA1500=0,然后是红色。谢谢,我一直在使用它,但是,我现在意识到,我需要将它设置为3色刻度,因为只有在我输入特定的数字时,它才会改变颜色。例如300、400 500等。您能建议一种新的格式吗。如果有帮助的话,我很乐意向您展示我正在制作的电子表格-我不知道如何去想,我不太清楚您的意思。对不起。我希望颜色逐渐改变。0-300为蓝色300-399琥珀色400-500为红色。我试图将工作表复制并粘贴到我的评论中以向您展示,但没有成功work@Trace答案已更新。
For Amber change the formula to `=MOD(A1,500)>0`
For darker orange use `=MOD(A1,500)>300`
And for Red use `=OR(MOD(A1,500)>400,MOD(A1,500)=0)`