У меня есть 9 полей для редактирования, которые должны быть заполнены в определенном порядке, и обычно заполняются последовательно. Однако единственный способ, которым я в настоящее время знаю, как перейти от поля редактирования к полю редактирования, - это либо щелчок мышью, либо команды Send Keys . Использование этого не является эффективным способом перехода от поля редактирования к полю редактирования
Я использую Windows 7 с Excel 2010.
Рабочая книга Excel - .xltm.
Я написал XML, используя Редактор пользовательского интерфейса для Microsoft Office .
Я знаю, как писать функции обратного вызова, и у меня есть несколько рабочих обратных вызовов.
Я просмотрел большое количество потоков, но ни один из них не дал мне никакого представления о том, как делать то, что мне нужно.
Я знаю, что мой код ниже для активации / установки фокуса на следующее поле ввода неверен, если бы это было так, я бы не задавал вопрос.
Пример кода
VBA:
OC STANDS FOR ON CHANGE
GT STANDS FOR GET TEXT
CB STANDS FOR CONTROL BOX
Public Sub VOL1_OC_CB(IRIB As IRibbonControl, ByRef text)
'CODE TO EDIT WORKSHEET'
IRibbonControls("VOL1").ACTIVATE
End Sub
Public Sub VOL1_GT_CB(IRIB As IRibbonControl, ByRef text)
'CODE TO SET EDIT BOX VALUE AT STARTUP'
End Sub
Public Sub VOL2_OC_CB(IRIB As IRibbonControl, ByRef text)
'CODE TO EDIT WORKSHEET'
IRibbonControls("PCNT").ACTIVATE
End Sub
Public Sub VOL2_GT_CB(IRIB As IRibbonControl, ByRef text)
'CODE TO SET EDIT BOX VALUE AT STARTUP'
End Sub
Public Sub PCT_OC_CB(IRIB As IRibbonControl, ByRef text)
'CODE TO EDIT WORKSHEET'
ThisWorkbook.Sheets("MAIN").Activate
End Sub
Public Sub PCT_GT_CB(IRIB As IRibbonControl, ByRef text)
'CODE TO SET EDIT BOX VALUE AT STARTUP'
End Sub
XML:
<ribbon>
<tabs>
<tab id="OBR" label="OBR" keytip="CD">
<group id="MOQS" label="MOQs">
<editBox id="VOL1" label="VOL 1"
getText="VOL1_GT_CB" onChange="VOL1_OC_CB" keytip="V1"/>
<editBox id="VOL2" label="VOL 2"
getText="VOL2_GT_CB" onChange="VOL2_OC_CB" keytip="V2"/>
</group>
<group id="val" label="values">
<editBox id="PCNT" label="INCREASE %"
getText="PCT_GT_CB" onChange="PCT_OC_CB" keytip="PCT"/>
</group>
</tab>
</tabs>
</ribbon>
Я ожидаю, что при изменении окна редактирования VOL1 этот ящик редактирования VOL2 получит фокус / активацию, но когда я изменяю VOL1 , он активирует лист вместо .
Кроме того, я прошу прощения, если мое форматирование и фразы неудобны, я не очень хорош в общении и склонен делать странные выборы в языке. То же самое касается способа, которым я называю функции и переменные.