में वर्कशीट इवेंट का नाम बदलें एक्सेल शीट का नाम बदलने पर कुछ वीबीए कोड चलाने का सबसे अच्छा तरीका क्या है?Excel
Excel
उत्तर
यहाँ एक तरीका है। चाल एक समर्पित वर्ग के माध्यम से एक आवेदन स्तर पर घटनाओं को फंसाना है। शीटएक्टिवेट ईवेंट का उपयोग करके सक्रिय शीट के साथ-साथ इसके नाम का संदर्भ संग्रहित करें। जब शीट निष्क्रिय हो जाती है (और एक और सक्रिय) संग्रहित स्ट्रिंग के खिलाफ शीट संदर्भ के नाम की तुलना करें। एक वैश्विक चर वर्कबुक खुला घटना उपयोग करने के साथ
Option Explicit
Private WithEvents xl As Application
Private CurrSheet As Worksheet
Private CurrSheetName As String
Private Sub Class_Initialize()
Set xl = Excel.Application
Set CurrSheet = ActiveSheet
CurrSheetName = CurrSheet.Name
End Sub
Private Sub Class_Terminate()
Set xl = Nothing
End Sub
Private Sub xl_SheetActivate(ByVal Sh As Object)
If CurrSheetName <> CurrSheet.Name Then
Debug.Print "You've renamed the sheet: " & CurrSheetName & " to " & CurrSheet.Name
' Do something here - rename the sheet to original name?
End If
Set CurrSheet = Sh
CurrSheetName = CurrSheet.Name
End Sub
का दृष्टांत यह:
Public xlc As CExcelEvents
Sub Workbook_Open()
Set xlc = New CExcelEvents
End Sub
उपरोक्त उदाहरण केवल जब उपयोगकर्ता किसी अन्य कार्यपत्रक का चयन करता है ट्रिगर किया जाएगा यहाँ वर्ग (बुलाया CExcelEvents) है। यदि आप अधिक ग्रैन्युलरिटी चाहते हैं, तो शीट चेंज इवेंट की निगरानी भी करें।
मैं उत्सुकता से इसका उत्तर देने का इंतजार कर रहा हूं क्योंकि मुझे बहुत अधिक खोज के बाद इसे समझ नहीं आया है। मुझे मिली वर्कशीट पर कोई नामकरण कार्यक्रम नहीं है, इसलिए आपको वैकल्पिक दृष्टिकोण प्राप्त करने के लिए मजबूर होना पड़ता है।
सबसे अच्छा मैंने देखा है (जो भयानक) चादरों पर नाम केवल पढ़ने या अदृश्य बनाकर पुनर्नामित करना है, और फिर अपना स्वयं का टूलबार या बटन प्रदान करता है जो नाम बदलता है। बहुत बदसूरत और उपयोगकर्ता इसे नफरत करते हैं।
मैंने उन अनुप्रयोगों को भी देखा है जो कार्यालय टूलबार में नाम बदलें मेनू आइटम को अक्षम करते हैं, लेकिन यह टैब को डबल-क्लिक करने और वहां नाम बदलने से नहीं रोकता है। इसके अलावा बहुत बदसूरत और उपयोगकर्ता इसे नफरत करते हैं।
शुभकामनाएं, मुझे उम्मीद है कि कोई बेहतर उत्तर के साथ आता है।
स्पष्ट रूप से एप्लिकेशन ऑब्जेक्ट का उपयोग करके इसे संभालने के लिए कोई घटना नहीं है। कैसा कष्टकर।
मैं शायद वर्कशीट के स्टार्टअप मान को संग्रहीत करके इसे जितना संभव हो उतना ईवेंट जांच कर इसे पकड़ने की कोशिश करता हूं - जो स्वीकार्य रूप से एक हैक है।
निम्नलिखित मेरे लिए काम करना प्रतीत होता है, उम्मीद है कि यह मदद करता है।
ThisWorkbook मॉड्यूल में:
Private strWorksheetName As String
Private Sub Workbook_Open()
strWorksheetName = shtMySheet.Name
End Sub
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Call CheckWorksheetName
End Sub
Private Sub Workbook_NewSheet(ByVal Sh As Object)
Call CheckWorksheetName
End Sub
Private Sub Workbook_WindowDeactivate(ByVal Wn As Window)
Call CheckWorksheetName
End Sub
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Call CheckWorksheetName
End Sub
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
Call CheckWorksheetName
End Sub
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
Call CheckWorksheetName
End Sub
Private Sub CheckWorksheetName()
'If the worksheet has changed name'
If shtMySheet.Name <> strWorksheetName Then
DoSomething
End If
End Sub
- 1. Excel
- 2. Excel
- 3. Excel
- 4. Excel
- 5. Excel
- 6. Excel 2007
- 7. मैं Excel
- 8. Excel फ़ाइल
- 9. Excel 2010
- 10. jQuery डेटाटेबल्स: Excel
- 11. स्वचालित Excel 2010 एफ #
- 12. ओपन .csv Excel के
- 13. Excel 97-2003
- 14. Excel 2007 PageSetup.FitToPagesWide मुद्दा
- 15. Excel प्राप्त करें। .NET
- 16. यह कैसे पहचानें कि Excel फ़ाइल Excel 95 या Excel 97 विनिर्देशों के अनुरूप है या नहीं?
- 17. एक्सेल 2003 में Excel 2003
- 18. सी # -excel इंटरऑप - एक शीट
- 19. Excel 2010 ReDim बचाना दुर्घटना
- 20. Excel में एम्बेड EXE फ़ाइल फ़ाइल
- 21. Excel में लंबी संख्या कैसे दिखाएं?
- 22. कृपया बताएं कि मैं Excel VSTO
- 23. Excel में CustomDocumentProperties में दस्तावेज़प्रोपर्टी कैसे जोड़ें?
- 24. Excel 2007 के साथ ऑफिस ऑटोमेशन करने के लिए कोशिश कर रहा है, लेकिन Excel 2003 उपयोग करना जारी रखता
- 25. Excel में पिवट तालिका डेटा स्रोत कैसे बदलें?
- 26. Excel कार्यों के रूप में .net विधियों का खुलासा?
- 27. क्या किसी के पास .NET Excel IO घटक मानक हैं?
- 28. ASP.NET MVC: डाउनलोड कर रहा है Excel फ़ाइल
- 29. आप Excel सर्वर-पक्ष का उपयोग कैसे करते हैं?
- 30. एक्सेल में निर्यात पर काम करते समय Excel
यह अब और काम नहीं करता है। – plocks
एक्सेल 2016 में एकमात्र ऐसा ईवेंट मिल सकता है जो शीट का नाम बदलकर आग लगती है। आवेदन करने के बाद। दृष्टिकोण मोटे तौर पर वही है: वर्कशीट ऑब्जेक्ट्स और उनके वर्तमान नामों का मैपिंग बनाए रखें, और इस घटना के दौरान उन सभी को क्रॉस-चेक करें। – nicholas