2012-01-05 6 views
2

私は、いくつかの異なるシートに渡って特定の(固定位置)行を隠すことになるマクロの一部のソリューションです。私は現在持っている:いくつかのワークシートで固定された離散行の数を隠すためのVBAコード

Sheets(Sheet1).Range("5:20").EntireRow.Hidden = True

を行Sheet1の中5-20を非表示にします。私も(議論のために)、行6、行21、およびシート2の行35-38を非表示にしたいと思います - 私は上記のコード行を3回繰り返してこれを行うことができます。学習の練習と同じように、これを行うより良い方法があると確信しています。ここで

任意の助けに感謝:)

クリス

+0

ありがとうございました - 組合については分かりませんでした。私は勉強します。 – heavyarms

+0

試行:シート( "シート2")範囲( "A6、A21、A35:A38")EntireRow.Hidden = True – Reafidy

+0

OR:シート( "シート2")範囲( "6:6,21:21,35 :38 ")。隠し=真 – Reafidy

答えて

3

With Sheet1 
    Union(.Range("1:5"), .Rows(7), .Range("A10"), .Cells(12, 1)).EntireRow.Hidden = True 
End With 
4

は、tryです:

Sub hideMultiple() 
    Dim r As Range 
    Set r = Union(Range("A1"), Range("A3")) 
    r.EntireRow.Hidden = True 
End Sub 

しかし、あなたがすることはできませんいくつかのワークシートからUnion範囲、あなたは各ワークシートの引数をループする必要がありますので、 。

2

これは粗溶液で以下のようにいくつかの範囲のUnionを指定しますなどしかし、検証なし、既存の非表示の行の無い非表示解除、私は最初のパラメータとしてシート名を持っていない小切手を、私はしばしば役に立つと思う技術を実証しています。

現在の問題に関連するパラメータの文字列で配列をロードし、それらを実装するための簡単なループを記述します。サブと関数の宣言を調べ、このアプローチのバリエーションについては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 
+0

おかげでトニー、私は間違いなくこれを調べるでしょう:) – heavyarms

+0

ようこそ、私は調査があなたの時間を返済すると思います。パラメータ駆動型のコードは、私が若いときには非常に人気がありましたが、好意を失ったようです。中間コードにコンパイルするプログラミング言語は、この手法を使用しています。事前検証により、パフォーマンスは非常に印象的です。テクニックはファッションから外れます。私は世界で最も偉大なプログラマーではないが、私は45年間の技術を必要としている。 –

関連する問題