在过去的几天里,我一直在尝试自己解决这个问题,并且让自己向前迈出了一步,前进了三步。我一直不愿意打扰你,以为在此之前它会在其他地方得到解答。
我的想法是,我有一个电子表格,其行中的条件包含行中的单独条目;在第6行中,它是每个列条目的状态,当更改为“已完成”时,我希望隐藏该列。
我一直在使用Worksheet_Change,并且能够隐藏特定列,但不能隐藏活动列。
我们非常感谢所提供的任何帮助,如果其他地方已经提及,我很抱歉,但我无法成功应用任何示例。
感谢。
答案 0 :(得分:2)
每当你必须使用worksheet_change事件时,你必须考虑一个循环,因为用户可能会同时删除多个数据或进行复制粘贴,如果你只考虑“目标”它会给一个调试器错误。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ItemMultipleData As Range
For Each ItemMultipleData In Target 'handles multiple cells, paste, del, etc
'your code (instead of using "Target" change to ItemMultipleData. IE:
'If ItemMultipleData.Value = "Completed" Then
Next ItemMultipleData
End Sub
答案 1 :(得分:1)
这是一个起点。它只检查#strong <6> 行
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng As Range
Set rng = Range("6:6")
If Intersect(Target, rng) Is Nothing Then Exit Sub
If Target.Count <> 1 Then Exit Sub
If Target.Value = "Completed" Then
Application.EnableEvents = False
Target.EntireColumn.Hidden = True
Application.EnableEvents = True
End If
End Sub
修改#1:强>
这种方法假设一次只有一个单元格被改变........这使得“找到活动单元格”变得容易