Tahukah Anda bahwa mungkin untuk membedakan antara pengguna yang mengeklik "OK" pada InputBox versus "Batal", meskipun mereka tidak memasukkan teks apa pun?
Perhatikan contoh kode berikut:
Sub InputBoxTest()
Dim Result As String
Result = InputBox("Leave this box blank")
If StrPtr(Result) = 0 Then
Debug.Print "User clicked [Cancel]"
ElseIf Len(Result) = 0 Then
Debug.Print "User clicked [OK]"
Else
Debug.Print "User can't follow instructions"
End If
End Sub
Berikut adalah kode uji yang sedang beraksi:
Jika Anda tertarik mengapa ini berhasil, saya merekomendasikan pertanyaan berikut tentang stackoverflow:Apa manfaat dan risiko menggunakan StrPtr di VBA? Kedua jawaban pilihan teratas (dari pengguna Comintern dan GSerg) layak dibaca untuk pengetahuan latar belakang.
Referensi eksternal
Fungsi InputBox (Visual Basic untuk Aplikasi)Microsoft Docso365devxApa manfaat dan risiko menggunakan fungsi StrPtr di VBA? Saat mencari cara untuk menguji ketika pengguna membatalkan InputBox, saya menemukan fungsi StrPtr. Saya percaya itu memeriksa apakah suatu variabel pernah diberi nilai dan mengembalikan nol jika tidak pernah Stack OverflowChrisB