2

根据存储在特定单元格(例如A1工作表)中的值,我想隐藏工作表中从 B 列开始的许多列。

我正在尝试做的示例:

  • 如果单元格 A1 的值 = 10,则隐藏 B 列加上 B 之后的 10 列
  • 如果单元格 A2 的值 = 11,则隐藏 B 列加上 B 后的 11 列

困难实际上是 Excel(或至少我的 Excel 文件)使用字母表(A、B、...)作为列名的方式。rows("2:" & range("A1").value)在使用类似和设置的代码之前,我已经在行上完成了此操作.hide = true

4

3 回答 3

3

我想在上面的格伦回答中添加评论,但没有足够的声誉。我要补充的是,您不需要激活工作表或选择列,您可以简单地继续隐藏列:

Worksheets("TheSheet").Columns(2).Resize(, numColumnsToHide).EntireColumn.Hidden = True
于 2013-02-25T12:04:58.820 回答
2

您可以通过索引号来引用列:Columns(indexnumber)并且您可以使用Resize()设置要选择的列数,如下所示:

Sub HideColumns()
    Dim numColumnsToHide

    numColumnsToHide = Cells(1, 1).Value

    Columns(2).Resize(, numColumnsToHide).Select

    Selection.EntireColumn.Hidden = True
End Sub

显然,这段代码没有任何对 in 值的验证,A1所以如果有人在HideColumns()没有整数 in 的情况下运行A1,就会发生不好的事情。这也不会取消隐藏任何隐藏的列。

于 2013-02-24T04:57:22.857 回答
0

请不要复杂化就去做

Sub occultaColunas()

Range("D:E").EntireColumn.Hidden = True

结束子

于 2020-10-23T23:58:26.480 回答