在VBA中隐藏列

时间:2016-04-20 17:56:38

标签: excel vba excel-vba

我正在尝试根据其他工作表中的值隐藏列。我已经阅读了几篇文章,并不觉得这很困难,但我遇到了一些问题。当Sheets(“Data”)。单元格(2,3)中的值为1时,一切正常,但当我将其更改为2,3或4时,代码会以某种方式突出显示整个电子表格并“隐藏”所有内容。没有意义。下面是使用If..Then的一个版本。我用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

1 个答案:

答案 0 :(得分:2)

尝试摆脱选择。这段代码适合我。

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