2017-04-06 13 views
5

私は従業員に記入するワークシートを持っています。ロックしたいセルを計算しましたので、変更できません。私はセルと選択されたプロパティを選択し、 "ロック"チェックボックスがオンになっていることを確認しました。ワークシート/ワークブックを保護すると、「csvへのエクスポート」マクロボタンが機能しなくなりました。私はワークブックには、このVBコードを挿入完了するマクロを有効にするには:数式を含むセルをロックするにはどうすればよいですか?

Private Sub Workbook_Open() 

Dim wSheet As Worksheet 
For Each wSheet In Worksheets 

    wSheet.Protect Password:="password", _ 
    UserInterFaceOnly:=True 

Next wSheet 


End Sub 

これは私のロック式は、彼らがロックされていても編集することができるようにすることを可能にする意図せぬ副作用が働いていたが、持っていました。非数式値を含むセルだけがロックされたままです。マクロを許可しても式セルをロックする正しい方法は何ですか?

+0

数式ブロックに '.Value = Value'を設定し、新しいデータにセルを再計算する場合は、' .Formula = "..." 'で数式を再確認する必要があります。イベントサブシートWorksheet_Calculateは「マクロ」と見なされます。 – Jeeped

+0

@Jeepedマクロの最後に 'UserInterFaceOnly'を変更するとどうなりますか?私の答えを見て、これが動作すれば教えてください。私はすぐにそれをテストするためのアクセス権を持っていません。 – Masoud

+0

@Masoud - 私の頭の上から離れて、Workbook_OpenはThisWorkbookコードシートにはプライベートです。私はあなたがそれを呼び出すことができるかどうかはわかりません。 – Jeeped

答えて

0

私の解決策は、ワークブック全体とワークシートをロックしてから、VBボタンにロックを無効にしてからマクロを再度有効にすることでした。同様に:

Sub MyMacro() 

Sheet1.Unprotect Password:="password" 

    'insert code here 

    Sheet1.Protect Password:="password" 

End Sub 

私はWorkbook_Openコードを削除しました。

関連する問題