Vba 在代码执行后将焦点设置在组合框(ActiveX控件)上

Vba 在代码执行后将焦点设置在组合框(ActiveX控件)上,vba,excel,excel-2007,Vba,Excel,Excel 2007,我有一个Excel文件,其combobox名称=Combobox1。运行脚本后,基本上是将选定值粘贴到列的下一行,我希望在脚本末尾的组合框上重置焦点,这样做允许我在组合框中键入下一个条目,而无需先单击组合框文本字段 这在Excel 2013中起作用,但我希望它在2007年也能起作用: Combobox1.Activate 有人知道吗 或: 我可以将组合框替换为单元格内下拉列表数据验证和与我目前在组合框中的数据验证相同的数据验证,但我还有另一个问题: 对于组合框,您可以选择使下拉列表处于活动状态

我有一个Excel文件,其combobox名称=Combobox1。运行脚本后,基本上是将选定值粘贴到列的下一行,我希望在脚本末尾的组合框上重置焦点,这样做允许我在组合框中键入下一个条目,而无需先单击组合框文本字段

这在Excel 2013中起作用,但我希望它在2007年也能起作用:

Combobox1.Activate
有人知道吗

或: 我可以将组合框替换为单元格内下拉列表数据验证和与我目前在组合框中的数据验证相同的数据验证,但我还有另一个问题: 对于组合框,您可以选择使下拉列表处于活动状态,但对于单元格内数据验证,情况并非如此,至少如果您希望在列表显示为ALT+UP或

Application.SendKeys "%{UP}"

有什么想法吗?

我没有办法用Excel 2007测试这一点。但是.Activate方法应该以相同的方式工作,无论版本如何。你怎么说它不工作了?对不起,我脑子里有表单控件。SetFocus将在表单控件上工作。我在2010年测试了.activate,它工作正常。我将在周一测试一个2007版本,但我看不出为什么它不起作用。您是否遇到错误,或者只是担心07和13之间可能存在差异?谢谢您的努力!我为其他人创建了一个宏,它在我的Office 2013计算机上运行得很好,但在此人的2007计算机上和其他人的2007计算机上都没有,但我自己没有验证过。没有错误消息。焦点不会返回/转到组合框,用户必须手动单击文本框才能激活它。@MM7我用excel 2007测试过,它工作正常。您是否未安装service pack?你能在组合框激活前后发布代码吗?我在2007年还测试了一个简单的.activate过程来激活工作表上的组合框。组合框按预期激活。您可能希望确保最终用户没有禁用宏。