2017-10-24 14 views
0

私はExcel VBAに堪能ではないので、尋ねられる明白な質問のように聞こえる場合はお詫び申し上げます。
Excelでモデルを構築していますが、実際にはcheckboxがチェックされている場合はinputboxをトリガーします。チェックボックスに基づいてInputBoxを開く

は、これまでのところ私は、次の操作を実行するために管理:

Private Sub Worksheet_Change(ByVal Target As Range) 
    Set Target = Range("G7") 

    If Target.Value = "TRUE" Then 

     Dim QtyEntry As Integer 
     Dim Msg As String 
     Msg = "Please insert value" 
     QtyEntry = InputBox(Msg) 
     ActiveSheet.Range("C7").Value = QtyEntry/100 

    End If 
End Sub 

target.valueG7checkboxにリンクされたセルであるので、チェックがオフのとき、チェックがオンまたはFALSEあるときには、TRUEを返します。 しかし、私は2種類の問題があります。最初の1つは、チェックボックスをオンにしたときにマクロが実際にアクティブにならないことです(しかし、ターゲットセルに "TRUE"を書き込むとします)。

inputboxが表示されたとき、セルC7で、しかし、それはそれは消えることなく、入力値に求め続けている。

+0

セル 'G7'で使用している数式で投稿を編集できますか? – danieltakeshi

+0

セルG7には数式がありません。このセルはチェックボックスにリンクされているためです。これがチェックされると、セルG7は "TRUE"と報告し、そうでなければ "FALSE" – user2008338

答えて

1

ちょうど直接そう?

Private Sub CheckBox1_Change() 
    If (CheckBox1.Value) Then 

     Dim QtyEntry As Integer 
     Dim Msg As String 
     Msg = "Please insert value" 

     'errNum is used to catch if an error has happened from the inputbox entry 
     Dim errNum as integer 
     Err.Clear 
     On error resume next 'this line tells the code to continue even if it encounters an error 
     QtyEntry = InputBox(Msg) 
     errNum = Err.Number 
     On error goto 0 'this reset the default behavior of error handling 

     Excel.Application.enableEvents = False 'this is to avoid the change of the cell "C7" calling your `Worksheet_Change` event 
     'edit to include if user click cancel or nothing is entered 
     If (errNum = 0) then 
      ActiveSheet.Range("C7").Value = QtyEntry/100 
     End if 
     Excel.Application.enableEvents = True 

    End If 
End Sub 

のActiveX Checkboxで使用するように、チェックボックスのイベントを服用しない理由

+0

simpLE MAnありがとうございました。チェックボックスをオフにすると、値をゼロにリセットするためにコード行を追加しました。わずか1つの小さなバグが残った。 "ok"または "cancel"を押して入力ボックスを閉じるときにエラーメッセージ(およびVBAエディタを開くこと)を避ける方法については、 – user2008338

+0

編集 –

+0

ありがとうございますが、かなり機能していませんが、エラータイプ13のタイプが一致しません! If QtyEntry = "" Exit Sub "のようなコード行を追加しようとしていますが、まだそれを動作させることはできません。 – user2008338

関連する問題