2009-05-21 7 views
8

छिपी हुई वर्कशीट्स/कार्यपुस्तिकाओं में वीबीए कोड में किए जा सकने वाले कुछ सीमाएं हैं, जैसे Select और Selection कथन, और ActiveSheet से आने वाली कोई भी चीज़, लेकिन मुझे सीमाओं की कोई सूची नहीं मिल रही है।छिपी हुई वर्कशीट्स या कार्यपुस्तिकाओं पर एक्सेल वीबीए क्रियाएं क्या संभव हैं?

Google, सहायता प्रणाली में अंतर्निहित दस्तावेज़, और एमएसडीएन की वेबसाइट सभी ने मुझे असफल कर दिया है। क्या कोई मुझे सही दिशा दिखा सकता है?

संपादित करें: कार्यपुस्तिका

Set WB_Master = Workbooks.Open(Filename:=PATH_Master, ReadOnly:=False) 

और फिर एप्लिकेशन मदद के लिए दृश्य मूल से

WB_Master.Windows(1).Visible = False 
+0

क्या आप इस बारे में विस्तार से बता सकते हैं कि आप कार्यपुस्तिका कैसे खोल रहे हैं और इसे अदृश्य बना रहे हैं? –

उत्तर

13

साथ छिपा हुआ के साथ खोला जाता है:

जब एक वस्तु छिपा हुआ है, इसे स्क्रीन से हटा दिया गया है और इसकी दृश्यमान संपत्ति गलत पर सेट है। एक छुपे ऑब्जेक्ट के नियंत्रण उपयोगकर्ता के लिए उपलब्ध नहीं हैं, लेकिन वे चल रहे एप्लिकेशन के लिए प्रोग्रामेटिक रूप से उपलब्ध हैं, अन्य प्रक्रियाओं के लिए जो ऑटोमेशन के माध्यम से और विंडोज में, टाइमर नियंत्रण घटनाओं के लिए आवेदन कर रहे हैं।

मुझे बहुत मदद नहीं है, मुझे डर है, और मुझे Google के माध्यम से और कुछ नहीं मिला।

जैसा कि आपने स्वयं कहा था, चयन विधि और चयन संपत्ति छुपा वर्कशीट पर काम नहीं करती है, हालांकि उन्हें एक छिपी हुई कार्यपुस्तिका पर काम करना चाहिए। (अगर मैं गलत हूं तो कृपया मुझे सही करें।) सामान्य तौर पर, वर्कशीट्स में श्रेणियों का चयन करने के लिए यह हमेशा सक्षम नहीं होता है, फिर भी आप रेंज संपत्ति के साथ काम करने से बेहतर होते हैं (जो एक छिपी वर्कशीट पर काम करता है)।

संपादित करें: यहाँ तक कि जब वर्कशीट दिखाई नहीं देता है सियान करने के लिए ए 8:

निम्नलिखित कोड का A1 रंग बदल जाएगा

Dim book2 As Workbook 
Set book2 = Workbooks.Open("C:\Book2.xls") 

book2.Worksheets("Sheet1").Visible = False 
book2.Windows(1).Visible = False 

With book2.Worksheets("Sheet1").Range("A1:E8").Interior 
    .ColorIndex = 8 
    .Pattern = xlSolid 
    .PatternColorIndex = xlAutomatic 
End With 

book2.Windows(1).Visible = True 
book2.Worksheets("Sheet1").Visible = True 
+2

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

+1

वर्कशीट फ़ंक्शन के साथ दिखाई देने वाली कोई कार्यपुस्तिका एक्सेस नहीं की जा सकती है। बस चादर का नाम निर्दिष्ट करें। पैट्रिक ने एक उदाहरण ऊपर दिया है। – jgallant

9

आप उन्हें दिखाते समय से छिपा हुआ शीट पर कोई सीमाएं आसपास पहुंच सकते हैं उपयोगकर्ता को यह महसूस करने के बिना, जो भी आपको चाहिए, और फिर उन्हें छुपाएं।

यह उदाहरण मानता है कि शीट 2 छुपा हुआ है।

Sub DoStuffToAHiddenSheetWithoutTheUserKnowingIt() 
    'turns off screen repainting so the user can't see what you're doing 
    'incidentally, this dramatically speeds up processing of your code 
    Application.ScreenUpdating = False 
    'note that if you're stepping through your code, screenupdating will be true anyway 

    'unhide the sheet you want to work with 
    Sheets("sheet2").Visible = True 
     'do whatever you want here, including selecting cells if you want 
     'Scagnelli is right though, only select cells if you have to 

    'when you're finished, hide the sheet again 
    Sheets("sheet2").Visible = False 

    'make sure you turn screenupdating back on, or Excel will be useless 
    Application.ScreenUpdating = True 
End Sub 

आप अपने चादरें छिपा चाहते हैं, तो एक और उपयोगी चाल उन्हें, xlVeryHidden करने के लिए सेट करने के लिए जो उन्हें उपयोगकर्ता के लिए सूचीबद्ध होने से रोकने के होंगे, यदि वे मेनू या रिबन के माध्यम से उन्हें सामने लाने का प्रयास करें।

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