>source

InputBox와 그 일부인 "취소"버튼에 대해 해결하지 못하는 다소 어리석은 질문이 있습니다.

이것은 코드입니다 :

Sub ExportFromOutlook()
Dim dteStart As Date
Dim dteEnd As Date
dteStart = InputBox("What is the start date?", "Export Outlook Calendar")
dteEnd = InputBox("What is the end date?", "Export Outlook Calendar")
Call GetCalData(dteStart, dteEnd)
End Sub

개념은 시작 날짜와 종료 날짜를 입력 한 후 Outlook에서 내보내기 코드를 실행하지만 요점이 아닙니다.

내가 원하는 것은 Inputboxes에서"취소 버튼"을 눌러 하위를 종료하고 VBA 코드에 오류가 발생하지 않도록하는 것입니다.

미리 감사합니다!

  • 답변 # 1

    비정규 InputBox   VBA.InputBox 입니다 . 그것은 String 를 반환 날짜가 아니며 StrPtr 를 사용합니다.  취소가 눌 렸는지 확인하려면 :

    Dim dteStart As Date
    Dim dteEnd As Date
    Dim t as string
    t = InputBox("What is the start date?", "Export Outlook Calendar")
    If StrPtr(t) = 0
      Exit Sub
    Else
      dteStart = CDate(t)
    End If
    t = InputBox("What is the end date?", "Export Outlook Calendar")
    If StrPtr(t) = 0
      Exit Sub
    Else
      dteEnd = CDate(t)
    End If
    
    

    Excel의 Application.InputBox 로 전환하면 Variant를 반환하면 조금 더 간단 해 질 수 있습니다.

    Dim dteStart As Date
    Dim dteEnd As Date
    Dim t as Variant
    t = Application.InputBox("What is the start date?", "Export Outlook Calendar", Type:=2)
    If t = False
      Exit Sub
    Else
      dteStart = CDate(t)
    End If
    t = Application.InputBox("What is the end date?", "Export Outlook Calendar", Type:=2)
    If t = False
      Exit Sub
    Else
      dteEnd = CDate(t)
    End If
    
    

  • 이전 javascript - 배열에서 Chartjs 선 그래프에 데이터 추가
  • 다음 applescript - 날짜 선택기가 표시되는 문제 (주요 스레드 문제?)