2012-12-20 7 views
5

Jestem nowy w obsłudze skryptów i próbuję ulepszyć istniejące makro. Nagrałem makro do usuwania zduplikowanych i dodaje go w głównej funkcji, która wywołuje pewne inne funkcje, ale ja dostaję ten błąd, gdy dodam makro nagrałem:Program Excel - Błąd wykonania "1004": Nie można ustawić ukrytej właściwości klasy zakresu

Run-time error '1004': Unable to set the hidden property of the range class 

kod wygląda

Private Sub Worksheet_Change(ByVal Target As Range) 
    Dim changed As Range 
    Set changed = Intersect(Target, Range("J15")) 
    If Not changed Is Nothing Then 
     Range("A48:A136").EntireRow.Hidden = True 
     Select Case Target.Value 
      Case "Agriculture" 
       Range("A48:A96").EntireRow.Hidden = False 
      Case "Commercial" 
       Range("A97:A136").EntireRow.Hidden = False 
      Case "MDP" 
       Range("A48:A61").EntireRow.Hidden = False 
     End Select 
     Range("J15").Select 
    End If 
End Sub 

Odpowiedz

6

Niektóre z możliwych odpowiedzi:

  • masz komentarz w jednej z wybranych komórek
  • masz jakieś narysowane obiekty, które nie resiz e z tekstem
  • Twój arkusz jest chroniony

Po ustawieniu punktu przerwania na pierwszej linii obsługi zdarzeń, a następnie naciśnij klawisz F8, aby krok po kroku makro, jestem przy założeniu, że wywala na linii:

Range("A48:A136").EntireRow.Hidden = True 
+0

Dziękuję za odpowiedź, ale mój skoroszyt jest chroniony i chce tylko w trybie chronionym, jego uruchamianie w trybie niechronionym, proszę o pomoc. – user1917946

+0

Przepraszam, nie zrozumiałem komentarza! Myślę, że to może być problem z tłumaczeniem ... –

+0

@AndyBrown Mam podobny problem ... Proszę sprawdzić moje pytanie tutaj: http://stackoverflow.com/questions/19976469/unable-to-hidea-a- column-in-excel-97-2003-skoroszyt – Xavier

0

spróbować :)

Private Sub Worksheet_Change(ByVal Target As Range) 
ActiveWorkbook.Unprotect "password_here" 
    Dim changed As Range 
    Set changed = Intersect(Target, Range("J15")) 
    If Not changed Is Nothing Then 
     Range("A48:A136").EntireRow.Hidden = True 
     Select Case Target.Value 
      Case "Agriculture" 
       Range("A48:A96").EntireRow.Hidden = False 
      Case "Commercial" 
       Range("A97:A136").EntireRow.Hidden = False 
      Case "MDP" 
       Range("A48:A61").EntireRow.Hidden = False 
     End Select 
     Range("J15").Select 
    End If 
ActiveWorkbook.Protect "password_here" 
End Sub 

to powinno działać dla ciebie :)

Powiązane problemy