根据单元格的值隐藏和显示Excel中的多个列

我试图让列隐藏在工作表中的基于某个单元格中的值。 这个值可以从不同的名称选项中select,并且对于每个可能的选项隐藏不同的列。 我有下面的代码,但它似乎并不一直工作,有时它只隐藏范围内的一些列,但不是全部(如果Abandonnée在单元格F7,那么有时列H将隐藏我不会被隐藏)。 如果有人有任何想法,我将不胜感激的帮助。 谢谢!

Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Range("F7").Value = "Abandonnée" Then Columns("G").EntireColumn.Hidden = False Else Columns("G").EntireColumn.Hidden = True End If If Range("F7").Value = "Abandonnée" Then Columns("H:I").EntireColumn.Hidden = True Else Columns("H:I").EntireColumn.Hidden = False End If If Range("F7").Value = "Référé au spécialiste" Then Columns("G").EntireColumn.Hidden = True Else Columns("G").EntireColumn.Hidden = False End If If Range("F7").Value = "Référé au spécialiste" Then Columns("H").EntireColumn.Hidden = False Else Columns("H").EntireColumn.Hidden = True End If If Range("F7").Value = "Référé au spécialiste" Then Columns("I").EntireColumn.Hidden = True Else Columns("I").EntireColumn.Hidden = False End If If Range("F7").Value = "En force" Then Columns("G").EntireColumn.Hidden = True Else Columns("G").EntireColumn.Hidden = False End If If Range("F7").Value = "En attente d'information" Then Columns("G").EntireColumn.Hidden = True Else Columns("G").EntireColumn.Hidden = False End If If Range("F7").Value = "En cours" Then Columns("G").EntireColumn.Hidden = True Else Columns("G").EntireColumn.Hidden = False End If If Range("F7").Value = "Refusé par l'assureur" Then Columns("G").EntireColumn.Hidden = True Else Columns("G").EntireColumn.Hidden = False End If End Sub 

两件事情:

  1. 首先取消隐藏所有列。

  2. 然后使用Select Case遍历条件并隐藏需要隐藏的内容。

像这样,你将需要在其他条件:

 Private Sub Worksheet_SelectionChange(ByVal Target As Range) Columns("G:I").Hidden = False Select Case Range("F7") Case "Abandonnée" Columns("H:I").Hidden = True Case "Référé au spécialiste" Columns("G").EntireColumn.Hidden = True Columns("I").EntireColumn.Hidden = True Case "En force" Columns("G").EntireColumn.Hidden = True 'Continue with all your tests End Select End Sub 

如果您的单词触发隐藏相同的列,您可以将其作为Case语句:

 Case "En force","Abandonnée" '... 

那么当F7是这两个中的任何一个时,它将执行下面的操作。