隐藏VBA中的列

我试图根据另一个表中的值来隐藏列。 我读了几篇文章,并不觉得这是非常困难的,但有一些问题。 当表格(“数据”)。单元格(2,3)中的值为1时,一切正常,但当我将其更改为2,3或4时,代码以某种方式突出显示整个电子表格并“隐藏”所有内容。 没有意义。 下面是一个使用If ..的版本。 我在select case中尝试了同样的事情,并且发生了同样的问题。

Sub test() Dim choice As Integer Sheets("Summary").Select Range("O:S").Select Selection.EntireColumn.Hidden = True choice = CInt(Sheets("Data").Cells(2, 3)) If choice = 1 Then Range("O:P").Select Selection.EntireColumn.Hidden = False ElseIf choice = 2 Then Range("Q:Q").Select Selection.EntireColumn.Hidden = False ElseIf choice = 3 Then Range("R:R").Select Selection.EntireColumn.Hidden = False ElseIf choice = 4 Then Range("S:S").Select Selection.EntireColumn.Hidden = False End If Sheets("Summary").Cells(1, 1).Select 

尝试摆脱select。 这段代码适用于我。

 Sub test() Dim choice As Integer Sheets("Summary").Activate range("O:S").EntireColumn.Hidden = True choice = CInt(Sheets("Data").Cells(2, 3)) If choice = 1 Then range("O:P").EntireColumn.Hidden = False ElseIf choice = 2 Then range("Q:Q").EntireColumn.Hidden = False ElseIf choice = 3 Then range("R:R").EntireColumn.Hidden = False ElseIf choice = 4 Then range("S:S").EntireColumn.Hidden = False End If Sheets("Summary").Cells(1, 1).Select End Sub