vba - 如果输入的金额不符合请求的格式,则显示错误消息

时间:2017-12-03 13:35:14

标签: vba formatting decimalformat

我在Excel中的列“K”中有一系列金额。我希望宏从第9行开始逐个单元格显示错误消息,如果单元格中的数量不是格式####,##。

因此,例如,如果金额为“1234.56”,我预计会出现错误消息,但如果输入的金额为“9,34”则不会出现

我有下面的代码但不知何故它不起作用。我应该以不同的方式写些什么?

Sub Macro1()

lastrowK = Sheet1.Range("K" & Rows.Count).End(xlUp).Row
Col = "K"

For i = 9 To lastrowK
    If InStr(1, Cells(i, Col), ".", vbTextCompare) <> 0 Then
        MsgBox "Please check amount in following Cell " & Worksheets("Sheet1").Cells(i, Col).Address & "Format should be ####,##"

    End If
Next i
End Sub

1 个答案:

答案 0 :(得分:0)

见下面的工作代码:

Sub Macro1()

   lastrowK = Sheet1.Range("K" & Rows.Count).End(xlUp).Row
   Col = "K"

   For i = 2 To lastrowK
       If (Application.ThousandsSeparator = ".") Then
            Cells(i, Col).Value = Replace(Cells(i, Col).Value, ".", "")
        End If
        If (Application.DecimalSeparator = ".") Then
             Cells(i, Col) = Replace(Cells(i, Col).Value, ".", ",")
        End If
   Next i
   End Sub