2016-05-14 19 views
0

次のコードを使用してG11からG55の式を非表示にしています。しかし、それはすべての式を隠し、シートを保護します4。 G15:G55でセルを非表示にして保護するにはどうすればよいですか?ありがとうございました。Excelで選択した範囲の式を非表示

Sub Loc() 
    Dim c As Range 
    Worksheets("sheet4").Range("G15:G55").Select 

    For Each c In Selection 
     If c.HasFormula = True Then 
      c.Locked = True 
      c.FormulaHidden = True 
     End If 
    Next c 
    'Worksheets("sheet4").Range("G11:G55").Locked = True 
    Worksheets("sheet4"").Protect Password:="111" 
End Sub 

は、次のコードは、

Sub Locs() 
    Dim c As Range, rng1, rng2 As Range 
    Worksheets("Sheet4").Unprotect Password:="111" 

    Cells.Locked = False 
    Cells.FormulaHidden = False 

    Set rng1 = Range("G15:G55") 
    Set rng2 = Range("I15:I55") 

    For Each c In rng1 
     If c.HasFormula = True Then 
      c.Locked = True 
      c.FormulaHidden = True 
     End If 
    Next c 

    For Each c In rng2 
     If c.HasFormula = True Then 
      c.Locked = True 
      c.FormulaHidden = True 
     End If 
    Next c 

    Worksheets("Sheet4").Protect Password:="111" 
End Sub 
+0

あなたはただ一つの**セット**とただ一つのループしか必要としません............ Set rng = Union(範囲( "G15 :G55 ")、範囲(" I11:I55 "))' –

+0

@ Gary's Thanks ............................... – Kuma

答えて

1

を変更することができます考えてみましょう:

Sub Loc() 
    Dim c As Range, rng As Range 

    Worksheets("sheet4").Unprotect Password:="111" 
     Cells.Locked = False 
     Cells.FormulaHidden = False 
     Set rng = Range("G15:G55") 

     For Each c In rng 
      If c.HasFormula = True Then 
       c.Locked = True 
       c.FormulaHidden = True 
      End If 
     Next c 
    Worksheets("sheet4").Protect Password:="111" 
End Sub 

をこれは、関心の細胞のみをロックし、他の人を解放します。必要に応じてG15G11に変更することができます。

+0

@ゲーリーズいいですね、別の範囲に行きたい、コードを変更する簡単な方法はありますか? – Kuma

+0

@Kuma ** Set **コマンドのすべてです。これを変更することができます異なる範囲または異なる範囲の集合を含める.................... –

関連する問題