私は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
なぜ、行を隠す代わりにブックをカバーするために図形を追加/削除するマクロを使用しないのですか?はるかに簡単だろう。 –
@ FernandoJ.Rivera読みやすくするために、行を隠す方が良いと思われます。 – Maldred
エラーハンドラを追加できますか?これにより、クラッシュが発生する前にエラーをキャッチしてメッセージを出力することができます。また、Error Trappingが* Unhandled Errorsでブレークするように設定されているかどうかを確認してください* – Maldred