运行查询时隐藏列

时间:2009-01-15 09:51:56

标签: calculated-columns

我正在查看一个宏,它会在每次运行查询时隐藏特定范围的列。

例如:我第一次运行查询时,我需要隐藏列A到D,就像下次运行查询时一样,我需要隐藏E到H列。

它基本上是一个可以概括列隐藏模式的查询。

我要求你提供这方面的专业知识。

1 个答案:

答案 0 :(得分:0)

如果传递RunCount值1,将E列传递给H,如果传递值2,则将E列隐藏到H,如果传递值3,则列I到L,依此类推,等等所述...

Public Sub HideColumns(RunCount As Integer, TargetSheet As Worksheet)
  Dim rngHide As Range
  Dim ColOffset As Integer

' Initialise rngHide to columns A to D of the target worksheet.
  Set rngHide = TargetSheet.[A:D]

' Calculate the offset from column A to the first column _
  that needs to be hidden, update rngHide if required.
  ColOffset = (RunCount - 1) * 4
  If ColOffset > 0 Then
    Set rngHide = rngHide.Offset(0, ColOffset)
  End If

' Hide the columns.
  rngHide.ColumnWidth = 0
End Sub

如果您决定只隐藏某些列,只需更改行:

Set rngHide = TargetSheet.[A:D]

E.g。仅隐藏第一个&最后一列,(列A D,列E H等):

Set rngHide = TargetSheet.[A:A, D:D]

仅隐藏前两列:

Set rngHide = TargetSheet.[A:B]