Excel 基于输入值显示/隐藏列

Excel 基于输入值显示/隐藏列,excel,vba,Excel,Vba,我有一个输入表“sheet I”,输入单元格:C3,输入值将是整数,如1、2、3。 输出表为“输出1”、“输出2”、“输出3”、“输出10”。一些输出表包含A2到G36的内容,而其他输出表包含A2到H36或T36的信息。理想情况下,我希望根据表I中$C$3的值有条件地查看列(从C列开始)。逻辑如下: 如果输入值=1,则显示A列、B列和C列 如果输入值=2,则显示A列、B列和D列 如果输入值=6,则显示A列、B列和H列 现在我有了这个VBA,但是代码中的输入值设置为静态数字。有谁能建议我应该

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

  • 如果输入值=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

不太确定这是否是你正在寻找的,但你应该试试这个

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

End if