2010-09-11 19 views
6

चेक बॉक्स की तरह ट्रिगर के साथ मैं अपनी कार्य पुस्तक की रक्षा करना चाहता हूं। मैंने एक्सेल 2003 की कोशिश की:वीबीए का उपयोग कर एक्सेल वर्कबुक की रक्षा कैसे करें?

thisworkbook.protect("password",true,true) 

thisworkbook.unprotect("password") 

यह काम नहीं कर रहा है। कोई सुझाव?

+0

कॉल ActiveWorkbook.Protect और ActiveWorkbook.Unprotect है, लेकिन यह काम करना चाहिए। त्रुटि विवरण और कोड कहां से अधिक जानकारी इस सवाल में मदद मिलेगी। –

+0

हाय रिचर्ड, उत्तर के लिए धन्यवाद। जब मैं इसworkbook.protect का उपयोग करता हूं न तो यह कोई त्रुटि नहीं दिखा रहा है और न ही इसे संरक्षित करने के लिए सेट कर रहा है। क्या यह है कि हमें कुछ फीचर को कोड लिखने के लिए चालू करना चाहिए जो शीट की सुरक्षा करता है। मैंने अपने मैक्रो को सक्षम किया है। मेरे पास कोई सुराग नहीं है – Ravi

उत्तर

7

मैं @ रिचर्ड मॉर्गन से सहमत हूं ... आप जो कर रहे हैं वह काम करना चाहिए, इसलिए अधिक जानकारी की आवश्यकता हो सकती है।

माइक्रोसॉफ्ट के पास options to protect your Excel 2003 worksheets पर कुछ सुझाव हैं।

यहाँ कुछ और जानकारी की है ...

मदद फ़ाइलों (रक्षा विधि) से:

expression.Protect(Password, Structure, Windows) 

अभिव्यक्ति आवश्यक है। एक अभिव्यक्ति जो वर्कबुक ऑब्जेक्ट देता है।

पासवर्ड वैकल्पिक संस्करण। एक स्ट्रिंग जो कार्यपत्रक या कार्यपुस्तिका के लिए केस-संवेदनशील पासवर्ड निर्दिष्ट करती है। यदि यह तर्क छोड़ा गया है, तो आप पासवर्ड का उपयोग किये बिना वर्कशीट या कार्यपुस्तिका को असुरक्षित कर सकते हैं। अन्यथा, आपको वर्कशीट या कार्यपुस्तिका को असुरक्षित करने के लिए पासवर्ड निर्दिष्ट करना होगा। अगर आप पासवर्ड भूल जाते हैं, तो आप वर्कशीट या कार्यपुस्तिका को असुरक्षित नहीं कर सकते हैं। एक सुरक्षित स्थान पर अपने पासवर्ड और उनके संबंधित दस्तावेज़ नामों की एक सूची रखना एक अच्छा विचार है।

संरचना वैकल्पिक संस्करण। कार्यपुस्तिका की संरचना (चादरों की सापेक्ष स्थिति) की रक्षा करने के लिए सही है। मूल मूल्य गलत है।

विंडोज वैकल्पिक संस्करण। कार्यपुस्तिका विंडो की सुरक्षा के लिए सच है। यदि यह तर्क छोड़ा गया है, तो विंडोज़ सुरक्षित नहीं हैं।

ActiveWorkbook.Protect Password:="password", Structure:=True, Windows:=True 

आप कार्यपत्रक स्तर पर काम करना चाहते हैं, मैं कुछ इसी तरह साल पहले इस्तेमाल किया जब मैं/असुरक्षित रक्षा के लिए आवश्यक:

Sub ProtectSheet() 
    ActiveSheet.Protect "password", True, True 
End Sub 

Sub UnProtectSheet() 
    ActiveSheet.Unprotect "password" 
End Sub 

Sub protectAll() 
    Dim myCount 
    Dim i 
    myCount = Application.Sheets.Count 
    Sheets(1).Select 
    For i = 1 To myCount 
     ActiveSheet.Protect "password", true, true 
     If i = myCount Then 
      End 
     End If 
     ActiveSheet.Next.Select 
    Next i 
End Sub 
1
  1. अपने नमूना कोड में आप कोष्ठक निकालना होगा , क्योंकि यह एक कार्यात्मक असाइनमेंट नहीं है; भी वृत्तचित्र कारणों से मैं तुम्हें := संकेतन का उपयोग (नीचे दिए गए कोड नमूना देखें)

    1. Application.Thisworkbook पुस्तक VBA कोड युक्त को संदर्भित करता है, जरूरी नहीं कि पुस्तक डेटा वाली है, तो सुझाव है सचेत रहो।

चादर आप एक चादर वस्तु के रूप में काम कर रहे हैं एक्सप्रेस और निम्नलिखित उप के लिए एक साथ इसे पारित, एक तार्किक चर के साथ: .Protect विधि आप क्या परिभाषित कर सकते हैं के भीतर

Sub SetProtectionMode(MySheet As Worksheet, ProtectionMode As Boolean) 

    If ProtectionMode Then 
     MySheet.Protect DrawingObjects:=True, Contents:=True, _ 
         AllowSorting:=True, AllowFiltering:=True 
    Else 
     MySheet.Unprotect 
    End If 
End Sub 

आप अनुमति/अनुमति देना चाहते हैं। यह कोड ब्लॉक सुरक्षा को चालू/बंद कर देगा - इस उदाहरण में पासवर्ड के बिना, आप इसे उप पैरामीटर में पैरामीटर या हार्डकोड के रूप में जोड़ सकते हैं। वैसे भी कहीं पीडब्ल्यू हार्डकोड किया जाएगा।आप इस नहीं करना चाहते हैं, बस संरक्षण डायलॉग विंडो फोन और उपयोगकर्ता क्या करने का फैसला करते हैं:

Application.Dialogs(xlDialogProtectDocument).Show 

आशा है कि मदद करता है

गुड लक - miked

1

से पूरे कार्यपुस्तिका लॉक करने के लिए ओपनिंग, Thisworkbook.password विकल्प वीबीए में इस्तेमाल किया जा सकता है।

आप कार्यपत्रक की रक्षा के लिए चाहते हैं, तो आपको पहले विकल्प Thisworkbook.sheets.cells.locked = True साथ कोशिकाओं को लॉक करें और फिर विकल्प Thisworkbook.sheets.protect password:="pwd" उपयोग करना होगा।

मुख्य रूप से इन कीवर्ड के लिए खोज: Thisworkbook.password या Thisworkbook.Sheets.Cells.Locked

+0

यह समस्या का असली जवाब है। –

संबंधित मुद्दे