1

我在这里的第一个问题。我正在尝试在 Excel 功能区中添加自定义搜索字段。我对常规研究的问题:它的默认范围是“这个工作表”,而我想要整个工作簿(甚至其他已知的工作簿)。所以我在功能区中创建了一个编辑框。我使用“onChange”来验证我的输入并触发我的自定义研究子。但我希望它仅在我按下键盘上的“Enter”键或将焦点放在另一个功能区按钮时触发(“搜索”按钮将使用我的编辑框值触发研究子,并且将被激活当焦点仍在编辑框上时按 Return 时。

我的另一个问题是离开字段也会触发子(离开时激活onChange);如果编辑框没有改变,它不会触发事件;而且我无法捕捉到“按下 Enter”的动作。

有没有办法解决我正在尝试做的事情?如果没有,有没有办法以“工作簿”范围作为默认范围而不是“此工作表”来调用本机搜索功能?

谢谢你的帮助。

J.P

4

1 回答 1

1

我最后做了什么(我只需要扫描第一列):

  • 功能区中的一个编辑框更新了一个变量,其范围是我的模块。

  • 功能区中的“开始”按钮,启动对存储在变量中的字符串的研究。

我使用的代码(当然这很简单,但可能会帮助像我这样的其他初学者):

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 回答