2016-05-14 91 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(Range(“G15 :G55“),范围(”I11:I55“))' –

+0

@ Gary的谢谢............................... – 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 

此只锁定感兴趣的细胞并释放其他人。如果您愿意,您可以将G15更改为G11

+0

@ Gary's这很好,我想要它去另一个范围,有没有简单的方法来修改代码, – Kuma

+0

@Kuma这是所有在**设置**命令.....你可以改变这个包括一个不同的范围或一组不同的范围.................... –