डेवलपर रिबन या बटन से मैक्रो को प्रारंभ किए बिना, वर्ड दस्तावेज़ खोले जाने पर मैं अपना वीबीए मैक्रो स्वचालित रूप से कैसे चला सकता हूं?

अब तक मैंने यह कोशिश की और यह मेरे लिए काम नहीं कर रहा है:

"FindChar" सब ठीक काम कर रहा है जब मैं इसे चलाता हूं। मुझे कोई त्रुटि संदेश नहीं मिल रहा है। ऐसा लगता है कि स्क्रिप्ट नहीं चल रही है।

Private Sub Document_open()

   Call FindChar

End Sub

Sub FindChar()

   Dim oTbl As Table
   Dim stT As Long, enT As Long
   Dim stS As Long, enS As Long

   With Selection.Find             ' Replacement
      .Text = "["
      .Replacement.Text = ""
      .Forward = True
      .Wrap = wdFindContinue
   End With

   For Each oTbl In ActiveDocument.Tables

    If oTbl.Shading.BackgroundPatternColor = RGB(176, 255, 137) Then 
    
        oTbl.Columns(1).Select

        Do While Selection.Find.Execute

            stT = oTbl.Range.Start                    
            enT = oTbl.Range.End

            stS = Selection.Range.Start               
            enS = Selection.Range.End

            If stS < stT Or enS > enT Then Exit Do

            Selection.Collapse wdCollapseStart
            Selection.Find.Execute Replace:=wdReplaceOne
            
        Loop
        Selection.Collapse wdCollapseEnd
    
    End If
    
Next

End Sub
0
User1 21 अप्रैल 2021, 15:01
1
काम नहीं कर रहा है बहुत मददगार नहीं है। क्या आपका कोड बिल्कुल चालू है? क्या कुछ गलत हो रहा है? क्या आपको एक त्रुटि संदेश मिलता है? क्या सीधे कॉल करते समय FindChar-रूटीन सही ढंग से काम कर रहा है और ओपन-इवेंट के माध्यम से नहीं?
 – 
FunThomas
21 अप्रैल 2021, 15:11
जब मैं इसे चलाता हूं तो FindChar अच्छा काम कर रहा होता है। मुझे कोई त्रुटि संदेश नहीं मिल रहा है। ऐसा लगता है कि स्क्रिप्ट नहीं चल रही है।
 – 
User1
21 अप्रैल 2021, 15:13
इवेंट ट्रिगर में Debug.Print "Document-Open triggered" जैसा स्टेटमेंट डालें और जांचें कि क्या तत्काल विंडो में कुछ लिखा गया था। आपका कोड कहाँ स्थित है? आपको दस्तावेज़-मॉड्यूल में Document_open()-रूटीन डालने की आवश्यकता है
 – 
FunThomas
21 अप्रैल 2021, 15:16
आपके पास वास्तव में Document_Open उप कहाँ है?
 – 
norie
21 अप्रैल 2021, 15:20

1 उत्तर

सबसे बढ़िया उत्तर

Document_Open मैक्रो केवल तभी काम करता है जब वह 'ThisDocument' कोड मॉड्यूल में होता है। यदि आपका कोड नहीं है, तो Document_Open को AutoOpen में बदलें

3
macropod 21 अप्रैल 2021, 15:20
जब मैंने कोड को मॉड्यूल 1 के बजाय 'यह दस्तावेज़' कोड मॉड्यूल में स्थानांतरित किया तो पूरी तरह से काम किया। धन्यवाद!
 – 
User1
21 अप्रैल 2021, 15:30
इसके अलावा, आपका क्या मतलब है: "Document_Open को AutoOpen में बदलें"? मैंने जो लिखा है उसके बजाय private sub AutoOpen() लिख रहे हैं?
 – 
User1
21 अप्रैल 2021, 15:32
उसका मतलब है कि मैक्रो का नाम "Document_Open" के बजाय "AutoOpen" होना चाहिए ताकि वह एक मानक मॉड्यूल में काम कर सके। यह दस्तावेज़ विशेष है।
 – 
Charles Kenyon
21 अप्रैल 2021, 17:33