वर्कशीट नाम VBA का उपयोग करना


0

मैं सोच रहा था कि क्या एक्सेल में वर्कशीट के लिए कोई संकेतक है। मान लीजिए कि मेरे पास VBA कोड है जो किसी बिंदु पर वर्कशीट नाम का उपयोग करता है, तो मैं कार्यपत्रक का नाम बदलता हूं इसलिए मुझे अपने कोड में भी इस नाम को बदलने की आवश्यकता है। क्या किसी कार्यपत्रक के लिए संकेतक का उपयोग करने का कोई तरीका है, इसलिए मुझे अपने कोड में यह नाम नहीं बदलना होगा? या कोड में किसी वर्कशीट को उसके नाम का उपयोग किए बिना उपयोग करने का कोई अन्य तरीका?

आपके सहयोग के लिए धन्यवाद।


आप सूचकांक का भी उपयोग कर सकते हैं ( Workbook.Worksheets(1) ), लेकिन यह भी बदल सकता है।
Máté Juhász

कार्यपत्रक के बारे में कैसे संकेत नाम ??
Gary's Student

क्या यह एक्टिविजिट है?
yass

3
वर्तमान में चयनित शीट को संदर्भित करने के लिए आप कार्यपुस्तिका का उपयोग कर सकते हैं। आप वर्कशीट के नाम को वहां स्टोर करने के लिए एक ग्लोबल वैरिएबल का उपयोग कर सकते हैं, और अपने बाकी कोड में ग्लोबल वैरिएबल का उपयोग कर सकते हैं। क्या आपकी वर्कशीट का नाम बदल जाएगा, आप एक स्थान के अनुसार मैक्रो को संपादित कर सकते हैं।
LPChip

तुम भी वर्कशीट (0), वर्कशीट (1), या, शीट (0), शीट (1) का उपयोग कर सकते हैं ... जहां 0, 1 टैब / सूचकांक स्थिति हैं।
ejbytes

जवाबों:


1

संदर्भ के आधार पर, आपके पास कुछ विकल्प हैं।

1. एक निरंतर का उपयोग करें

आप अपने कोड के शीर्ष पर एक स्थिरांक की घोषणा कर सकते हैं, फिर आपको केवल उस बिंदु में परिवर्तन करने की आवश्यकता है, जिससे वह उस बिंदु को प्रभावित कर सके जहां निरंतर उपयोग किया जाता है। उपयोग करने के बजाय:

Set shtSheet = sheets("Sheet1")

आप उपयोग कर सकते हैं:

Set shtSheet = Sheets(csSource)

भर।

एक निरंतर उपयोग की घोषणा करें Const <name> as <type> = <value>

Sub WorksheetVar()
    Const csSheetName As String = "Test"

    Sheets(csSheetName).Range("A1").Value = 1
    Sheets(csSheetName).Range("A2").Value = 2
    Sheets(csSheetName).Range("A3").Value = 3
End Sub

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

2. सूचकांक संख्या का उपयोग करें

हर वर्कशीट में एक नंबर के साथ-साथ एक नाम भी होता है, आम तौर पर टैब्स में वर्कशीट की स्थिति। भले ही शीट का नाम बदल दिया गया हो, लेकिन टैब क्रम बदलने पर भी यह बदल जाएगा।

3. एक चर का उपयोग करें

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

4. शीट के ऑब्जेक्ट नाम का उपयोग करें

वर्कशीट के प्रदर्शित नाम से स्वतंत्र, प्रत्येक शीट में एक वस्तु का नाम होता है, आम तौर पर इसका नाम तब था जब इसे पहली बार बनाया गया था। यदि आप बाईं ओर प्रोजेक्ट एक्सप्लोरर देखते हैं, तो आप देखेंगे कि प्रत्येक शीट को 'शीट 1 (शीट 1)' के रूप में सूचीबद्ध किया गया है। यदि आपने शीट 1 का नाम बदलकर परीक्षण किया है, तो आप देखेंगे Sheet1 (Test)। आप शीट को संदर्भित करने के लिए उस अपरिवर्तनीय ऑब्जेक्ट नाम का उपयोग कर सकते हैं, जैसे कि यह एक चर था।

Sub Sheetname()
    Sheet1.Range("A1").Value = 1
    Sheet1.Range("A2").Value = 2
End Sub

व्यक्तिगत रूप से मुझे यह तरीका पसंद नहीं है, क्योंकि यह पता लगाना आसान है कि कौन सी शीट कौन सी है, लेकिन यह आपके लिए एक विकल्प है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.