2010-08-24 13 views
5

मैं डेटाबेस मानों के साथ एक स्प्रेडशीट पॉप्युलेट कर रहा हूं। जिन कोशिकाओं को मैं डेटा भरता हूं, मैं चाहता हूं कि वे केवल उपयोगकर्ताओं को पढ़ा जाए। मैं यह कैसे कर सकता हूँ?स्प्रेडशीट में केवल कोशिकाओं को पढ़ने के लिए कैसे करें?

उत्तर

5

कैसे आप श्रेणी का चयन करना चाहते हैं पर निर्भर करता है। यह सिर्फ एक सेल है। यदि आप जे 1 पर वापस जाते हैं और मूल्य बदलते हैं, तो आपको संकेत दिया जाना चाहिए।

Private Sub Worksheet_Change(ByVal Target As Range) 
    Range("J1").Select 
    Selection.Locked = True 
    ActiveSheet.Protect Contents:=True 
    Range("K1").Select 

End Sub 

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

+0

यदि मैं इस काम को एक रेंज ईफ सेल के लिए बनाना चाहता हूं, तो मैं यह कैसे कर सकता हूं। ज्ञान की कमी की क्षमा करें, मैं प्रोग्रामिंग के लिए नया हूं। – gizgok

+0

रेंज ("ए 1: के 47") – JeffO

+0

यह सभी कोशिकाओं को पढ़ रहा है..मैं कुछ गलती कर रहा हूं। निजी उप Worksheet_Change (cellrange स्ट्रिंग के रूप में) रेंज (cellrange) .Select Selection.Locked = सच ActiveSheet.Protect सामग्री: = सच End Sub – gizgok

0

This page कोशिकाओं की एक श्रृंखला की रक्षा के लिए एक छोटा उप प्रदान करता है।

अंश

Private Sub Worksheet_SelectionChange(ByVal Target As Range) 
    If Not Intersect(Target, Range("H1:H10")) Is Nothing Then 
     Target.Offset(0, 1).Select 
     MsgBox "you may not enter that cell" 
    End If 
End Sub 

H1:H10 रक्षा के लिए। जब उपयोगकर्ता H1:H10 के भीतर कोई सेल बदलना चाहता है तो एक चेतावनी संदेश कहता है कि सेल संशोधित नहीं किया जा सकता है, और अगले कॉलम में पड़ोसी सेल (I) इसके बजाय चुना गया है।

+0

बहुत यकीन है कि यह उचित उत्तर नहीं है – titus

0

एक्सेल में आप सुरक्षा मेनू पर जा सकते हैं और निर्दिष्ट कर सकते हैं कि कौन से कक्षों को संशोधित करने के लिए पासवर्ड की आवश्यकता होगी। आप कई श्रेणियों को भी निर्दिष्ट कर सकते हैं।

आशा है कि आप यही खोज रहे थे।

1

आप कोशिकाओं की सुरक्षा करने का प्रयास कर सकते हैं। या आप इसे अपने कोड एक SelectionChange संभाल घटना का उपयोग कर सकते हैं ...:

Private Sub Worksheet_SelectionChange(ByVal Target As Range) 
     If Not Intersect(Selection, Range("A24:A50")) Is Nothing Then 
     Range("B1").Select 
     End If 
    End Sub 
4

इन परिस्थितियों में मुझे अक्सर शीट को लॉक करने का सबसे अच्छा तरीका मिल जाता है, लेकिन केवल उपयोगकर्ता के लिए UserInterfaceOnly तर्क का उपयोग करके जो अभी भी शीट के साथ अप्रतिबंधित प्रोग्रामेटिक इंटरैक्शन की अनुमति देता है।

ActiveSheet.ProtectUser InterfaceOnly:=True 

विभिन्न अन्य तर्क सेट किया जा सकता है कि है कि अभी भी उपयोगकर्ता फिल्टर करने के लिए अनुमति देगा, प्रकार आदि इस आवश्यक होना चाहिए रहे हैं, मदद फ़ाइल एक पूरी सूची है।

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