Это грубое решение: нет проверки, нет скрытия существующих скрытых строк, нет проверки, что у меня есть имя листа в качестве первого параметра и т. Д. Но это демонстрирует метод, который я часто нахожу полезным.
Я загружаю массив со строкой параметров, относящихся к моей текущей проблеме, и кодирую простой цикл для их реализации.Посмотрите объявления sub и функции и прочитайте раздел ParamArrays, чтобы узнать об этом подходе.
Option Explicit
Sub HideColumns()
Dim InxPL As Integer
Dim ParamCrnt As String
Dim ParamList() As Variant
Dim SheetNameCrnt As String
ParamList = Array("Sheet1", 1, "5:6", "Sheet2", 9, "27:35")
SheetNameCrnt = ""
For InxPL = LBound(ParamList) To UBound(ParamList)
ParamCrnt = ParamList(InxPL)
If InStr(ParamCrnt, ":") <> 0 Then
' Row range
Sheets(SheetNameCrnt).Range(ParamCrnt).EntireRow.Hidden = True
ElseIf IsNumeric(ParamCrnt) Then
' Single Row
Sheets(SheetNameCrnt).Range(ParamCrnt & ":" & _
ParamCrnt).EntireRow.Hidden = True
Else
' Assume Sheet name
SheetNameCrnt = ParamCrnt
End If
Next
End Sub