7

スクリプトは初めてで、既存のマクロを改善しようとしています。重複を削除するマクロを記録し、他の関数を呼び出す Main 関数に追加しましたが、記録したマクロを追加すると、このエラーが発生します。

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

コードは次のようになります

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
4

3 に答える 3

8

いくつかの可能な答え:

  • 選択したセルの1つにコメントがあります
  • テキストでサイズ変更されない描画オブジェクトがいくつかあります
  • ワークシートは保護されています

イベントハンドラーの最初の行にブレークポイントを設定し、F8キーを押してマクロをステップ実行すると、次の行でクラッシュすると想定します。

Range("A48:A136").EntireRow.Hidden = True
于 2012-12-20T08:16:02.617 に答える
0

これを試して :)

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

これはあなたのために働くはずです:)

于 2015-11-13T11:42:19.273 に答える