1

ここで私の最初の質問。Excel リボンにカスタム検索フィールドを追加しようとしています。通常の調査に関する私の問題:デフォルトの範囲は「このワークシート」ですが、ワークブック全体(または他の既知のワークブックでさえ)が必要です。そこで、リボンに編集ボックスを作成しました。「onChange」を使用して入力を検証し、カスタム研究サブをトリガーします。しかし、キーボードの「Enter」キーを押すか、別のリボン ボタン (編集ボックスの値でリサーチ サブをトリガーする「検索」ボタン) にフォーカスを移したときにのみトリガーされるようにしたいと思います。フォーカスがまだ編集ボックスにあるときに Return キーを押したとき。

私のもう1つの問題は、フィールドを離れるとサブもトリガーされることです(離れるとonChangeがアクティブになります)。editbox が変更されていない場合、イベントはトリガーされません。「Enterを押した」アクションをキャッチできません。

私がやろうとしていることを解決する方法はありますか? そうでない場合、「このワークシート」の代わりに「ワークブック」範囲をデフォルト範囲としてネイティブ検索機能を呼び出す方法はありますか?

ご協力ありがとう御座います。

JP

4

1 に答える 1

1

最後に何をしたか(最初の列をスキャンするだけです):

  • 範囲が私のモジュールである変数を更新するリボンの編集ボックス。

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

私が使用したコード(確かに簡単ですが、私のような他の初心者に役立つかもしれません):

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

助けてくれてありがとう@Rory

于 2016-07-14T21:30:29.250 に答える