2016-07-10 16 views
1

私の最初の質問 Excelリボンでカスタム検索フィールドを追加しようとしています。通常の調査で問題が発生しました:デフォルトの範囲は「このワークシート」です。 私はリボンにエディットボックスを作成しました。私は "onChange"を使って自分の入力を検証し、カスタムリサーチサブをトリガーします。 しかし、私はそれが好きですキーボードの「Enter」キーを押すか、別のリボンボタンにフォーカスを移動したときにのみトリガされます(リサーチサブをトリガし、フォーカスがオンのときにReturnキーを押したときにアクティブになるボタン「検索」 editbox。VBAでExcelリボンで返す

私の他の問題は、 aving the fieldもサブをトリガーします(onChangeは離れるとアクティブになります)。 editboxが変更されていなければイベントをトリガーしません。 「押されたままにする」という行為をキャッチすることはできません。

私がしようとしていることを解決する方法はありますか? "このワークシート"ではなく "ブック"の範囲をデフォルトの範囲としてネイティブ検索機能を呼び出す方法はありますか?

ありがとうございました。

JP私は最後にやった

+1

のために再び@Rory

Private nomPatientRecherche As String Public Sub RecherchePatient(control As IRibbonControl) Dim feuille As Worksheet, zone As Range, cellule As Range For Each feuille In ThisWorkbook.Worksheets feuille.Activate Set zone = feuille.Range("A2:A" & ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row) For Each cellule In zone If Not cellule.Find(nomPatientRecherche) Is Nothing Then cellule.Activate If Not MsgBox("Continuer ?", vbOKCancel, "Continuer ?") = vbOK Then Exit Sub End If End If Next cellule Next feuille End Sub Public Sub DefineNomPatientRecherche(control As IRibbonControl, nom As String) nomPatientRecherche = nom End Sub 

感謝を変数にテキストを単に格納するためのeditboxの 'onChange'コールバックです。そして、あなたのボタンの 'onAction'コールバックでその変数を参照してください。 – Rory

+0

@Roryご回答いただきありがとうございます。正確には私が望んでいたものではありませんが、確かにそれは素晴らしい回避策です。ありがとう! – JeeP

答えて

1

(私は最初の列をスキャンする必要がある):

  • エディットボックスリボンウィッヒでは、その範囲私のモジュールで変数を更新します。

  • リボンの "Go"ボタンを押すと、変数に格納されている文字列の調査が開始されます。

私は(それはシンプルだが、そのような私と他の初心者を助けるかもしれないことを確認するために)使用されるコード:私はあなたが使用することをお勧めしたいあなたの助け

関連する問題