2016-07-12 6 views
0

ここディールだ:新規挿入行

私はロックされたダイナミックレンジ(理解する目的のためのは、言わせて:A1を:E100)で保護されたワークシートを持っています。保護プロパティで新しい行を挿入および削除できるようにしました。だから、もしA10とA11の間に行を挿入したいのなら、それは私に許されます。しかし、この行にコンテンツを追加したい場合、それはCells Aboveからプロパティを継承しているため、私を許可しません。

セルのA250に新しい行を挿入すると、シートのこの部分がロックされていないため、もちろん問題があります。明らかに、上記の動的定義範囲(A1:E100)の間に行を挿入したいと思います。

セルからプロパティを継承せずに新しい行を挿入する方法はありますか? 挿入された新しい行がロックされていない方法はありますか?

ロックされた範囲を現在の状態に保ちたいと思っています。定義された範囲の間にない他の範囲がある場合は、行を挿入しません。

ご協力いただきありがとうございます。

+0

ロックされていない行をコピーし、コピーしたセルを*挿入します。 –

+0

ありがとうございますが、これは私の最適な解決策ではありません。私はユーザーにこれを混乱させたくありません。他のアイデア...? –

+0

ロックを解除して操作を実行し、再度ロックします。これを行うことはかなり正常です。 – Absinthe

答えて

0

新しい行が追加されたときにシートの保護を解除して保護することができます。ターゲットが新しく追加された行であれば、より良いチェックを使用することができます。

Private Sub Worksheet_Change(ByVal Target As Range) 
    If Target.Locked = False Then Exit Sub 'only execute if target is locked (which means the only way it could have changed is if it was inserted, I hope) 
    Me.Unprotect 
    Target.EntireRow.Locked = False 
    Me.Protect AllowInsertingRows:=True 
End Sub 

また、シートはSheet.ProtectContentsを使用して保護されたかどうかをチェックすることをお勧めします。それ以外の場合は、手動で保護を解除し、ロックされた行内で何かを変更すると、ロックが解除されます。

+0

お返事ありがとうございます、私はこれが実際には素晴らしい解決策だと思います。私はイベントを使用したくなかったが、私は私の唯一のショットだと思う。私はそれが私にそれをさせるだろういくつかのExcelのプロパティを変更することを望んでいた。 –