2010-07-06 46 views
0

我是全新的宏的世界,但在QTP之前做过一些VBScript。我正在寻找创建一个宏,这将隐藏某些列取决于用户从下拉列表中选择。我不确定语法以及如何识别我希望隐藏的列以及如何使用下拉列表标识单元格。创建一个宏,将隐藏和显示列基于从下拉列表中选择

这里大概我怎么会看到它寻找 -

Sub HideColumns() 
    If cell(ViewType).Value = "Option 1" Then 
     Cells(Column_1, Column_2).EntireColumn.Hidden = True 
    ElseIf cell(ViewType).Value = "Option 2" Then 
     Cells(Column_2, Column_3).EntireColumn.Hidden = True 
    ElseIf cell(ViewType).Value = "Option 3" Then 
     Cells(Column_3, Column_4).EntireColumn.Hidden = True 
    End If 
End Sub 

我点名与下拉ViewType在Excel单元格 - 将在VBA识别对象的方式,或者我需要声明它?

如何识别我想隐藏的列?

回答

1

您在Excel中定义的名称在Excel中可用作普通变量,所以这不应该是任何问题。

就你而言,我会建议使用Switch Case声明。这将如下所示:

Select Case ActiveWorkbook.Names("ViewType").RefersToRange 
     Case "Option 1" 
       ' Hide Column X 
     Case "Option 2" 
       ' Hide Column Y 
End Select 

也请记住,对于宏被调用一次您更改单元格,你就需要把这个代码放到

Private Sub Worksheet_Change(ByVal Target As Range) 
End Sub 

这一分必须是放置在工作表本身的代码部分,并且每次在工作表中更改单元格时都会执行该工作。

让我知道如果这足以让你继续或如果你需要更多的帮助。

+0

感谢Trefex--我会放弃它。 我假设 单元格(A1,B1).EntireColumn.Hidden = True 将隐藏列A和B,因为它们包含单元格A1和B1。理想情况下,我会根据一个命名单元来确定要隐藏的comn。要马上试试这个。 再次感谢! – ThomB 2010-07-06 09:23:23

+0

查看细胞(R,C)如何更多地关联到单个细胞,您应该使用Range(“A1:B1”)。EntireColumn.Hidden = True以隐藏A列和B列。 让我知道, – Trefex 2010-07-06 09:29:02

1

我喜欢在隐藏和取消隐藏列时使用自定义视图。自定义视图位于视图选项卡(> = 2007)和视图菜单下(< = 2003)。这里有一个例子:

  1. 隐藏列1和2个
  2. 视图 - 自定义视图 - 添加 - 命名为 “选项1”
  3. 取消隐藏,然后隐藏列2和3
  4. 视图 - 自定义视图 - 添加 - 命名为“选项2”
  5. 取消隐藏,然后隐藏列3,4
  6. 视图 - 自定义视图 - 添加 - 命名为“2选项”
  7. 取消隐藏
  8. 在单元格中创建数据验证(不得到隐藏),并与“选项1,选项2,选项3”列表
  9. 名称是细胞ViewType
  10. 右键单击工作表标签,并选择查看代码和把下面的代码在代码窗格

    Private Sub Worksheet_Change(ByVal Target As Range) 
    
        'Only work on the cell named ViewType 
        'The Me keyword refers to the sheet whose code module you're in 
        If Target.Address = Me.Range("ViewType").Address Then 
         'Show the custom view that corresponds to the value selected 
         'in the dropdown 
         ActiveWorkbook.CustomViews(Target.Value).Show 
        End If 
    
    End Sub 
    

当用户选择选项1从下拉菜单中,显示的选项1视图隐藏列1和2,这是管理隐藏和取消隐藏,因为一个不错的方式你可以调整自定义视图,如果你想改变它,而不是编辑码。

相关问题