Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 选项卡从单元格到组合框,从单元格到单元格_Excel_Vba - Fatal编程技术网

Excel 选项卡从单元格到组合框,从单元格到单元格

Excel 选项卡从单元格到组合框,从单元格到单元格,excel,vba,Excel,Vba,我在Excel中创建了一个文档,我希望用户通过制表符填写单元格和组合框 如果我可以使用数据验证,解决方案将很简单,但这不允许自动填充 我知道了如何从一个组合框切换到另一个组合框 Private Sub CBO0_KeyDown(ByVal Keycode As MSForms.ReturnInteger, ByVal shift As Integer) If Keycode = 9 Then CBO1.Activate End If End Sub 我还学会了如何从组合框到单元格进行制

我在Excel中创建了一个文档,我希望用户通过制表符填写单元格和组合框

如果我可以使用数据验证,解决方案将很简单,但这不允许自动填充

我知道了如何从一个组合框切换到另一个组合框

Private Sub CBO0_KeyDown(ByVal Keycode As MSForms.ReturnInteger, ByVal shift As Integer)
If Keycode = 9 Then
    CBO1.Activate
End If
End Sub
我还学会了如何从组合框到单元格进行制表

Private Sub CBO1_KeyDown(ByVal Keycode As MSForms.ReturnInteger, ByVal shift As Integer)
If Keycode = 9 Then
    Range("D10").Activate
End If
End Sub
剩下的是,

  • 单元格到组合框
  • 细胞间
我需要单元格到单元格的解决方案在VBA中,因为Excel中的解决方案在组合框和单元格之间不起作用

要了解选项卡顺序

  • 组合框
  • 组合框
  • 细胞
  • 单元格(下线)
  • 单元格(下线)
  • 组合框
  • 细胞
  • 单元格(下线)
  • 单元格(下线) 重复

我无法更改顺序,否则整个表单将无法工作。

我假设这些是工作表上的activeX组合框。使用工作表_更改事件,将激活更改A1和组合框1,选择更改组合框1和B1,激活更改B1和组合框2

Private Sub Worksheet_Change(ByVal Target As Range)

    If Target.Count > 1 Then Exit Sub
    If Target.Address = "$A$1" Then Me.ComboBox1.DropDown
    If Target.Address = "$B$1" Then Me.ComboBox2.DropDown

End Sub

Private Sub ComboBox1_Click()
    Me.Range("B1").Select

End Sub

Private Sub ComboBox2_Click()
    Me.Range("C1").Select

End Sub

我认为您需要查看当您更改单元格时触发的
工作表更改
事件。我尝试了一些事情,即使是事件的组合,但我得到的最接近的结果是,当切换到单元格或单击单元格时,焦点直接放在组合框上。你有一个我可以尝试的代码示例吗?是的,它是ActiveX,我现在必须走了,但我会在周一尝试,并标记它是否有效。谢谢你帮我研究这个。为什么不现在看看它是否有效呢?我没有等到星期一才回答你的问题。很抱歉我真的有重要的事情要参加。我刚刚试过改变事件。现在,如果我在“A1”中键入一些内容,然后按tab键,组合框中的下拉列表将打开,但组合框未被选中。我改变了。下拉到。激活,现在它做我需要的。但是,如果没有对A1进行任何更改,则不会在组合框中添加选项卡。我会看看我是否能找到一个解决方案,并张贴它。谢谢你的点击活动,这是一个很好的改进。我发现了。今天晚些时候我会发布我的解决方案。谢谢你的帮助!