我的第一个问题。 我正在尝试在Excel功能区中添加自定义搜索字段。我对常规研究的问题是:它的默认范围是“这个工作表”,而我想要整个工作簿(甚至是其他已知的工作簿)。 所以我在功能区中创建了一个编辑框。我使用“onChange”来验证我的输入并触发我的自定义研究子。 但是我更喜欢只有当我按下键盘上的“Enter”键才能触发它,或者将焦点放在另一个功能区按钮上(一个“搜索”按钮会触发带有我的编辑框值的研究子,并且会被激活当焦点仍在编辑框上时按Return键。
我的另一个问题是离开该字段也会触发sub(onChange在离开时被激活);如果没有更改editbox,它不会触发事件;我无法抓住“按下”动作。
有没有办法解决我想要做的事情? 如果没有,有没有办法以“工作簿”范围作为默认范围调用本机搜索功能,而不是“此工作表”?
感谢您的帮助。
JP
答案 0 :(得分: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的帮助