2013-03-08 60 views
-1

我申请数据验证允许细胞群的规则我的数据,我想完成以下。 例如,如果在一个单元格中我有Not a Product Owner,我希望下一个单元格被设置为N/A,并且不可用于编辑。如果第一个单元格包含与Not a Product Owner不同的值,则下一个单元格应该可用于编辑(根据我设置的验证规则,允许使用值)。根据其他单元格中的内容

+0

你不介意与我们分享至少一个相关的一块你的努力 - [?你尝试过什么]刚刚在支持(http://whathaveyoutried.com/) – 2013-03-08 08:44:21

+0

@PeterL。由于我不是一名优秀的导师,我只是试图在网上找到解决方案,因为我没有找到符合我需求的任何东西,所以我在这里问。谢谢。 – 2013-03-08 08:56:56

+0

我不认为这可能是使用纯Excel完成的:您希望保留条件检查并同时允许在同一单元格中输入。但是,如果VBA是您的选择 - 这是可以实现的。 – 2013-03-08 09:00:29

回答

1

这是一个VBA的做法。

您需要将此代码放入工作簿相关工作表中的Worksheet_Change事件模块中。

简而言之,如果列A中的单元格更改为Not a product owner,则在列B中添加n/a,并锁定单元格以进行编辑。如果有其他事情,则添加数据验证列表并且单元格解锁。

请注意,此方法要求工作表受密码保护。

Private Sub Worksheet_Change(ByVal Target As Range) 
    Dim Options As String 
    Options = "1. Choice1, 2. Choice2, 3. Choice3" //Change this options 

    ActiveSheet.Unprotect Password:="Your Password" 
    Application.EnableEvents = False 

    If Not Intersect(Range("A:A"), Target) Is Nothing Then 
     If Target = "Not a product owner" Then 
      Target.Offset(0, 1).Validation.Delete 
      Target.Offset(0, 1) = "n/a" 
      Target.Offset(0, 1).Locked = True 
     Else 
      Target.Offset(0, 1).Locked = False 
      Target.Offset(0, 1).Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:=Options 
     End If 
    End If 

    Application.EnableEvents = True 
    ActiveSheet.Protect Password:="Your Password" 
End Sub 
+0

这对我很有用。谢谢你的帮助! – 2013-03-08 15:23:06

相关问题