Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
比较VBA中的百分比值_Vba_Excel_Format_Compare - Fatal编程技术网

比较VBA中的百分比值

比较VBA中的百分比值,vba,excel,format,compare,Vba,Excel,Format,Compare,我有一个带有2个文本框和标签的用户表单。文本框用于插入十进制值。标签角色是显示第1个值除以第1个值的结果(文本框) 我试图验证插入的值是否正确。如果标签错误。标题将变为红色 我有这样一个代码: If Me.netto.Value = "" And Me.vat.Value = "" Or Me.vat.Value = "" Or Me.netto.Value = "" Then Else Procent_check.Caption = FormatPercent(CDbl(Me.vat) /

我有一个带有2个文本框和标签的用户表单。文本框用于插入十进制值。标签角色是显示第1个值除以第1个值的结果(文本框)

我试图验证插入的值是否正确。如果标签错误。标题将变为红色

我有这样一个代码:

If Me.netto.Value = "" And Me.vat.Value = "" Or Me.vat.Value = "" Or Me.netto.Value = "" Then

Else
Procent_check.Caption = FormatPercent(CDbl(Me.vat) / CDbl(Me.netto), 2)

    If Procent_check.Caption >= 27 Or Procent_check.Caption <= 15 Then Else: Procent_check.ForeColor = vbRed

End If

FormatPercent
格式“20%”返回字符串,您不能将此字符串与数字合并

试试这个:

Dim res As Double
If Me.netto.Value <> "" And Me.vat.Value <> "" And Me.netto.Value <> 0 _
        And IsNumeric(Me.netto.Value) And IsNumeric(Me.vat.Value) Then
    res = CDbl(Me.vat) / CDbl(Me.netto)
    Procent_check.Caption = FormatPercent(res, 2)

    If res >= 0.27 Or res <= 0.15 Then
        Procent_check.ForeColor = vbBlack
    Else
        Procent_check.ForeColor = vbRed
    End If
Else
    Procent_check.Caption = ""
End If
Dim res为双精度
如果Me.netto.Value“”和Me.vat.Value“”和Me.netto.Value 0_
然后是IsNumeric(Me.netto.Value)和IsNumeric(Me.vat.Value)
res=CDbl(增值税)/CDbl(净额)
Procent\u check.Caption=格式百分比(分辨率,2)

如果res>=0.27或res谢谢,它会工作!我不需要isnumeric,因为textbox可以在多种情况下使用不同的代码进行验证:)很高兴它可以帮助您:)如果您需要,可以删除
isnumeric
部分,我只是为了可靠性添加了它:)是的,我这样做了。只有一件事让我好奇。当我得到15%或27%时,它会变成红色,而此时它应该保持黑色。当它是15,01%或26,9%时,它不会发生……你能解释一下什么样的标签应该是黑色的,什么样的标签应该是红色的吗?更改
如果轮数(res,2)>=0.27或轮数(res,2)0.27或轮数(res,2)<0.15,则
…现在它是完美的:)谢谢。
Dim res As Double
If Me.netto.Value <> "" And Me.vat.Value <> "" And Me.netto.Value <> 0 _
        And IsNumeric(Me.netto.Value) And IsNumeric(Me.vat.Value) Then
    res = CDbl(Me.vat) / CDbl(Me.netto)
    Procent_check.Caption = FormatPercent(res, 2)

    If res >= 0.27 Or res <= 0.15 Then
        Procent_check.ForeColor = vbBlack
    Else
        Procent_check.ForeColor = vbRed
    End If
Else
    Procent_check.Caption = ""
End If