2017-12-01 19 views
0

私はVBAプログラマではないが、一般的にコードのスニペットを使用してスプレッドシートのようなフォーラムに集め、コードの内容を理解しようとするエンドユーザー。私はあなたにすべてありがとうのコード!Excel |セル値の変更時の自動起動マクロ|クラッシュを引き起こす

私の目的: 私は基本的にユーザーの入力フォームであるスプレッドシートを持っています。 ドロップダウンによる入力と選択に基づいて、入力フィールドを含む行を非表示にして、ユーザーに関連する質問を提示して、&を非表示にすることでフォームをガイドすることを意図しています。

各行では、以前に提供された入力に基づいて1または0を作成するIF式を作成しました。1 - 行の非表示、0 - 行の非表示。

私はすべてのシート計算を実行し、必要に応じて次の行を非表示または非表示にするマクロを探しています。

これらの式は、その上に範囲I3:I70で、私はので、私は私がマクロをトリガする範囲I3:I70またはセルI2上の変化の変化を確認することができますどちらかと思っI2=sum(I3:I70)で集計フィールドを作成しています。 [いずれの解決策も私の問題を解決しませんでした]

フォーラムでディスカッションされたいくつかのコード例を試しましたが、範囲またはセルの変更を個別にチェックするマクロをテストしました。 私がMsgBoxでテストマクロを呼び出す限り、正常に動作します。 また、私が手動で呼び出すと、非表示または非表示のマクロがうまく動作します。

私の問題: 私は 'auto'、マクロ呼び出しに' hide'-マクロをさせた場合、Excelは、単にがクラッシュ。警告なし、何もない - >ちょうどクラッシュする。

マイコード:事前に任意の提案やヒントについて

Private Sub Worksheet_Calculate() 
    Dim Xrg As Range 
    Set Xrg = Range("H3:H70") 
    If Not Intersect(Xrg, Range("H3:H70")) Is Nothing Then 
    Macro1 
    End If 
End Sub 

Sub Sample() 
MsgBox "Yes" 
End Sub 

Sub Macro1() 
    Dim cell As Range 
    For Each cell In Range("H3:H70") 
     If Not IsEmpty(cell) Then 
      If cell.Value = 0 Then 
       cell.EntireRow.Hidden = True 
      End If 
      If cell.Value = 1 Then 
       cell.EntireRow.Hidden = False 
      End If 
     End If 
    Next 
End Sub 

感謝。

JeWe

+0

なぜ、行を隠す代わりにブックをカバーするために図形を追加/削除するマクロを使用しないのですか?はるかに簡単だろう。 –

+0

@ FernandoJ.Rivera読みやすくするために、行を隠す方が良いと思われます。 – Maldred

+0

エラーハンドラを追加できますか?これにより、クラッシュが発生する前にエラーをキャッチしてメッセージを出力することができます。また、Error Trappingが* Unhandled Errorsでブレークするように設定されているかどうかを確認してください* – Maldred

答えて

1

は、私はそれを最後の検索を与え、動作するようですmicrosfofドットコムサイト上のいくつかのコードを見つけました:-)検索決してあきらめません。 は私に詳細を聞いてはいけないが、これは私はそれが寝る、世界の私の終わりには遅

Private Sub Worksheet_Calculate() 
Dim LastRow As Long, c As Range 
Application.EnableEvents = False 
On Error Resume Next 
For Each c In Range("H3:H70") 
    If c.Value = 0 Then 
     c.EntireRow.Hidden = True 
    ElseIf c.Value = 1 Then 
     c.EntireRow.Hidden = False 
    End If 
Next 
On Error GoTo 0 
Application.EnableEvents = True 
End Sub 

を探しています何をやっているようです。明日更新されます。 Txs JeWe

関連する問題