这里不是专家。使用巨大的excel表和某种销售渠道。我想要实现以下目标:如果我更改一个单元格(具有数据验证列表)的值,则希望更改同一行上另一个单元格的值。基本上,如果机会变为“赢”,我希望同一行的概率单元变为100%。 我进行了搜索,找到了解决方案,但是大多数解决方案都是基于std excel的使用,而我专门使用的是表(ListObject)。我必须以不同的方式“表现”吗?
我没有为此编写任何代码,因为我的编码技能是基础知识,并且基于Internet复制/粘贴+编辑。使用公式不是一种选择,因为我希望在机会不是“成功”的情况下仍可以对该单元格进行编辑。
编辑: 到目前为止,我已经完成了以下工作:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Me.ListObjects("tblSalesPipeline").ListColumns("Status").DataBodyRange) Is Nothing Then
If Target.Value = "Won" Then
MsgBox "Congratulations!"
Else
MsgBox "Idiot!"
End If
End If
End Sub
很明显,MsbBox-es只是进行测试以查看其是否有效。我现在要了解的是如何解决“概率”列中的特定行...
答案 0 :(得分:1)
尝试使用偏移量功能(第一个参数是行偏移量,第二个参数是列偏移量+右移,-左移),假设“概率”列在右边两列:
If Not Intersect(Target, Me.ListObjects("tblSalesPipeline").ListColumns("Status").DataBodyRange) Is Nothing Then
If Target.Value = "Won" Then
Target.Offset(0,2).Value2 = 1
MsgBox "Congratulations!"