2011-10-06 84 views
1

我已经编程过,但我是的新手,所以请帮助我。使用箭头键导航单元格中的定义值

我想让用户在工作表中选择一个单元格(列中的任何单元格),然后他/她应该能够按“向上”或“向下”箭头键来浏览值。

它类似于一个下拉菜单。

  1. 例如,我会有预定义的值,如“停止”,“去”,“开始”。
  2. 当用户选择单元格并按一次向上箭头键时,单元格的值变为“GO”,再次按箭头键,值变为“STOP”,依此类推......

谢谢你的帮助!

+0

它是否必须是上/下箭头?您可以使用数据验证规则创建数据选择框(添加您想要的选项的列表)。这样他们可以点击单元格,并且会出现一个选项列表供他们选择。 – aevanko

回答

3

第1部分

  1. 右键单击工作表标签
  2. 查看代码
  3. 复制并粘贴下面的代码

这段代码告诉Excel中运行您的箭头向上和向下的宏只有在表。当你离开片

Private Sub Worksheet_Activate() 
    Application.OnKey "{UP}", "UpOne" 
    Application.OnKey "{DOWN}", "DownOne" 
End Sub 

Private Sub Worksheet_Deactivate() 
    Application.OnKey "{UP}" 
    Application.OnKey "{DOWN}" 
End Sub 

第2部分

  1. 按ALT & F11一起去Visual Basic编辑器
  2. 插入模块
  3. 代码复制并粘贴下面的代码被停用
  4. 按ALt & F11回到excel

    Sub UpOne() 
         Select Case ActiveCell.Value 
         Case "" 
          ActiveCell.Value = "Ready" 
         Case "Ready" 
          ActiveCell.Value = "Set" 
         Case "Set" 
          ActiveCell.Value = "Go" 
         End Select 
        End Sub 
    
    
    Sub DownOne() 
        Select Case ActiveCell.Value 
        Case "" 
         ActiveCell.Value = "Go" 
        Case "Go" 
         ActiveCell.Value = "Set" 
        Case "Set" 
         ActiveCell.Value = "Ready" 
        End Select 
    End Sub 
    

你的代码将现在周期从

为空白(空) - 1)准备好 - 2)集 - 3)去(为向上箭头)

为空白(空) - 1)去 - 2)设置 - 3)准备好(用于降低箭头)

+0

+1不错的代码和很好的解释! – aevanko

+0

谢谢布雷特!那正是我想要的!我需要添加的唯一代码是在循环访问值之前先单击单元格。 – serge2487

+0

这是我添加的'Private Sub Worksheet_AfterLeftClick() Application.OnKey“{UP}”,“UpOn​​e” Application.OnKey“{DOWN}”,“DownOne” End Sub' – serge2487