मैंने एक्सेल और I के लिए VBA के साथ काम करना शुरू कियाएक समस्या में भाग गया, जिसे मैं इसका समाधान नहीं ढूंढ सकता हूं। मैं एक मैक्रो बनाना चाहता हूं जो एक शीट की प्रतिलिपि बनाता है और कॉपी का नाम बदलकर सेल बी 8 में निर्दिष्ट किया जाता है। अब, सेल बी 8 में एक स्ट्रिंग और एक मूल्य (आधारित) है। एक सूत्र पर) नीचे सचित्र है।
सेल बी 8 की सामग्री
नई शीट के नाम के रूप में नाम (स्ट्रिंग और संख्या) का उपयोग करने के लिए मुझे वीबीए कैसे मिलेगा?
Sub NewFunction()
Dim counter As Integer
Sheets(1).Copy After:=Sheets(1)
ActiveSheet.name = Sheets(1).Range("B8").CStr
End Sub
अग्रिम में धन्यवाद!
उत्तर:
उत्तर № 1 के लिए 1एक के लिए, आप शीट नाम में "/" का उपयोग नहीं कर सकते। यह त्रुटि हो सकती है, लेकिन एक्सेल सिर्फ इसे अनदेखा करेगा।
दूसरे, आप गलत शीट पर नाम बदल रहे हैं। आपने एक नई शीट जोड़ी और फिर पुरानी शीट को संदर्भित किया।
तीसरा, कोई उपयोग करने की आवश्यकता नहीं है। सेल के मूल्य के रूप में .Str आप क्या चाहते हैं, और चूंकि यह डिफ़ॉल्ट संपत्ति है, इसलिए उपयोग करने की कोई आवश्यकता नहीं है। या तो उपयोग करें।
जवाब के लिए 0 № 2
आप लगभग वहाँ थे
Sheets(1).Copy After:=Sheets(1)
ActiveSheet.name = Replace(Replace(Replace(Replace(Range("B8"), "", "-"), "/", "-"), "?", "-"), "*", "-")
कहा पे
बाद
Copy()
उसकि विधिWorksheet
ऑब्जेक्ट, नई वर्कशीट बन जाती है सक्रिय एकवीबीए
Replace()
तरीकाchain
आपको आश्वस्त करना है कि आपके नए वर्कशीट के नाम के लिए निषिद्ध वर्णों का उपयोग नहीं किया जा रहा है
संभव डुप्लिकेट नामों का मुद्दा बना हुआ है, जिसे एक विशिष्ट फ़ंक्शन के माध्यम से संभाला जा सकता है जिसे आप खोज सकते हैं यदि आप खोजते हैं