Программа VBA десятичных знаков - PullRequest
1 голос
/ 06 марта 2020

Мне нужна программа, которая требует от пользователя предоставить число с не более 2 десятичных разрядов , и если число с более чем 2 десятичными числами возвращается в l oop и запрашивать снова. Затем, чтобы иметь возможность вывести это число с соответствующими десятичными разрядами. Это то, что я до сих пор ...

Sub program()
   Dim num as Double

   num = Inputbox("Give me a number with no more than 2 decimal places:")

   MsgBox "Your time was " & num & " seconds."
End Sub

1 Ответ

1 голос
/ 06 марта 2020

Вместо Inputbox используйте Application.InputBox с Type:=1. Это обеспечит только цифры c записей.

Это то, что вы пытаетесь? Это позволит значения, такие как 1,1.1,1.11,.1,.11

Sub Sample()
    Dim Ret
    Dim digitsAfterDecimal As Integer

    Do
        Ret = Application.InputBox(prompt:="Enter a number with max 2 decimal places", Type:=1)

        '~~> If user presses cancel
        If Ret = False Then Exit Do

        '~~> Number of digits after decimal
        digitsAfterDecimal = Len(CStr(Ret)) - InStr(CStr(Ret), ".")

        '~~> This will allow up to 2 decimal
        If digitsAfterDecimal < 3 Then Exit Do
    Loop

    If Ret <> False Then MsgBox Ret
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...