根据输入值显示/隐藏列

时间:2015-04-01 15:27:27

标签: excel vba

我有一个输入表“Sheet I”,输入单元格:C3,输入值将是整数,例如1,2,3 ......。 输出表格为“Out 1”,“Out 2”,“Out 3”,......“Out 10”。某些输出表包含A2到G36的内容,而其他输出表包含A2到H36或T36的信息。理想情况下,我希望看到列(从C列开始)有条件地基于表I中$ C $ 3中的值。这是逻辑:

  • 如果输入值= 1,则显示A列,B列和C列
  • 如果输入值= 2,则显示A列,B列和D列
  • 如果输入值= 6,则显示A列,B列和H列
  • .....

现在我有了这个VBA,但是这段代码中的输入值是静态数字。任何人都可以建议我如何更改代码以使其工作?

Private Sub Workbook_SheetCalculate(ByVal Sh As Object)
Dim ShArray
Dim i
Dim MyRange, c As Range

Application.ScreenUpdating = False
Application.EnableEvents = False
ShArray = Array("Out 1", "Out 2", "Out 3", "Out 4", "Out 5",.. "Out 10")
For i = LBound(ShArray) To UBound(ShArray)
    Set MyRange = Sheets(ShArray(i)).Range("A:T")
    For Each c In MyRange
        Sheets(ShArray(i)).Rows(c.Column).Hidden = c.Value = "??"
    Next c
Next i
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub

1 个答案:

答案 0 :(得分:0)

不确定这是否是您要找的,但您应该尝试一下。

If InputValue = 1 then
Sheets(ShArray(i)).Columns("A:C").EntireColumn.Hidden = false
elseif InputValue = 2 then 
'...
elseif InputValue = 3 then 

End if 
相关问题