2016-10-13 5 views
0

私は、Visual Studio 2013でExcelシートとWindowsフォームを持っています。このフォームでExcelシートにデータを入力できます。複数のユーザーが共有します。私がしたいのは、Excelの特定のセル(例:列B〜G)はロックする必要がありますが、これらのセルのデータ入力はフォームを通して許可されるべきです。ユーザーがExcelを開くと、他の列は編集できますが、これらの列は編集できません。 私はセルをロックし、ワークシートをExcelで保護しました。その後、私のVBのコードで私は、これらを追加しました:vb.netを使用してExcelを保護する

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click 
       xlWorkBook = xlApp.Workbooks.Open("C:\Users\test.xlsx") 
      'xlApp.Visible = True 
      xlWorkSheet = xlWorkBook.Sheets("Sheet1") 
    xlWorkBook.Unprotect() 

    'entering data in excel 

    xlWorkBook.Save() 
    xlWorkBook.Protect() 
End Sub 

私はというエラーを取得する「あなたはデータを入力しようとしている細胞が保護されています。」このようなもの。 どうすればよいですか? 助けてください!

+0

ここで続けましょう。いいえ、つまり、セルを「保護する」パスワードがない場合、どのユーザーも保護を解除できますか?最後に、ワークブックは本当に保護されていますか?またはワークシート? –

+0

ya @ CrushSundaeしかし、彼らはExcelタブをクリックして保護を解除して開く必要があります。とにかく、後でパスワードを追加します。私の主な関心事は、フォームを介してロックされたセルにデータ入力を許可する方法です。私はシートのみを保護しました – user5538704

+0

いいえ、正しい方向です。保護されているため、セルにレコードを入力することはできません。したがって、保護がワークブックまたはワークシートのレベルにあるかどうかを確認してください。 –

答えて

1

だから、我々の議論の通り:

あなたのコードの問題は、あなたがワークブックの保護を解除されているが、実際に保護されていたものは、あなたのワークシートです。あなたが使用する必要があります確認アラートを無効にするだけでも

、:

xlApp.DisplayAlerts = False

あなたはまた、保存する前にprotection最初に設定する必要があります。

PS。質問を解決し、将来のユーザーに役立つ可能性があるため、私はこのディスカッションを答えとして要約しました。

+0

パスワードなしでワークシートを保護しました。だから私はパスワードの部分を追加しなかったのです – user5538704

+0

パスワードフィールドはオプションです。 – user5538704

関連する問題