我正在查看一个宏,它会在每次运行查询时隐藏特定范围的列。
例如:我第一次运行查询时,我需要隐藏列A到D,就像下次运行查询时一样,我需要隐藏E到H列。
它基本上是一个可以概括列隐藏模式的查询。
我要求你提供这方面的专业知识。
答案 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]