获取“使用VBA返回Excelfunction区上的编辑框值”

我的第一个问题 我正在尝试在Excelfunction区中添加一个自定义search字段。 我的问题与通常的研究:其默认范围是“这个工作表”,而我想整个工作簿(甚至其他已知的工作簿)。 所以我在function区中创build了一个编辑框。 我使用“onChange”来validation我的input并触发我的自定义研究部分。 但我更喜欢它只有当我按下我的键盘上的“input”键,或焦点到另一个function区button(一个button“search”这将触发与我的编辑框的价值研究,将被激活当焦点仍然在编辑框上时按下Return键。

我的另一个问题是,离开字段也会触发子(离开时onChange被激活); 如果编辑框没有被改变,它不触发事件; 我不能赶上“input按下”的行动。

有没有办法解决我想要做的事情? 如果没有,有没有办法调用本地searchfunction“工作簿”范围作为默认范围,而不是“这个工作表”?

谢谢你的帮助。

J.P

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

  • function区中的编辑框将更新范围是我的模块的variables。

  • function区中的“Go”button,启动存储在variables中的string的研究。

我使用的代码(当然这很简单,但可以帮助其他初学者,比如我):

 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的帮助