Как сделать мой цикл кода, где, если введенная дата неверна, пользователь может повторить попытку? - PullRequest
0 голосов
/ 04 июня 2019
Sub test
    Dim ws As Worksheet: Set ws = ActiveWorkbook.Sheets(“GL”)
    Dim xInput As Date, found As Range
    xInput = Application.InputBox(“Enter Friday date”, Type:=1)
    If IsDate(xInput) Then
        Set found = ws.Range(“F:F”).Find(xInput, searchdirection:=xlPrevious)
         If found Is Nothing Then
             ‘Need code to have user try again
        Else
            found.Offset(1).EntireRow.Insert (xlShiftDown)
        End If
    Else
        ‘Need code to have user try again
    End if
End sub

Сейчас у меня есть код, который просто выходит из sub, но мне нужна помощь с кодом, куда он вставит другой InputBox, чтобы повторить попытку.

1 Ответ

0 голосов
/ 04 июня 2019

Вы можете использовать Loop ниже, а также FormatDateTime, чтобы получить InputBox формат даты

Option Explicit

Sub NextFriday()

Dim FridayDate As Date

Do
    FridayDate = Application.InputBox("Enter Friday's Date :", "Date Selection", FormatDateTime(Date, vbShortDate), Type:=1)
    If Not IsDate(FridayDate) Then MsgBox "Error, not a Date format"
Loop Until IsDate(FridayDate)

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