ユーザーフォームにはユーザーが編集できるテキストボックスがいくつかありますが、デバッグ中であることが報告されました。少しの調査の後、私は、ユーザーがテキストボックスから値を削除していて、これが実行時エラー13を引き起こしていることが分かった。ユーザーが値を削除し、servcredit
テキストボックスになると、 a vbnullstring
?値がVBAテキストボックスから削除されたときのデバッガの防止
現在、テキストボックスには2つのコードがあります。
これは、背中のExcelシートに数値を入力します。
Private Sub ServCredit_Change()
Worksheets("Calculator").Range("L18") = CDec(ServCredit)
End Sub
このユーザーはない入力なし数値図形を行い確実。
Private Sub ServCredit_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If (KeyAscii > 47 And KeyAscii < 58) Or KeyAscii = 46 Or KeyAscii = 32 Then
KeyAscii = KeyAscii
Else
KeyAscii = 0
MsgBox "Invalid Key Pressed"
End If
End Sub
は...ありがとうございました。 –
これは 'Worksheets(" Calculator ")を設定します。範囲(" L18 ")を' ServCredit'に入力した最後の値にすると、計算が間違ってしまう可能性があります。テキストボックスの値が例えば'152'とバックスペースを使用して3桁の数字をすべて削除すると、L18は' 1'のままです。最も安全な方法は数値と照合し、そうでなければ「0」に設定することです。あなたの解決策は、数字だけを入力できることに依存しています。 –
@Peh私は細胞をクリアする方がよいと同意します。問題は、コントロールが非数値入力を防ぐために既に検証されていることを明確にしています。 – Rory