शब्द मैक्रो जो एक तालिका के माध्यम से छोरों और अंत में बंद हो जाता है


1

मेरे पास फिल्म स्क्रिप्ट हैं। पहला कॉलम टाइम कोड है, दूसरा कॉलम स्पीकर है, तीसरा कॉलम डायलॉग है।

मैं पूरी स्क्रिप्ट के माध्यम से लूप करना चाहता हूं, लेकिन केवल तीसरे कॉलम (संवाद) के लिए कुछ कर रहा हूं।

मेरे पास पहले से ही एक मैक्रो है जो मैं तीसरे कॉलम के लिए करता हूं। मुझे बस इसकी आवश्यकता है:

  • पंक्ति 1 कॉलम 1 में प्रारंभ करें
  • पंक्ति 1 पंक्ति 2 से टैब
  • पंक्ति 1 कॉलम 3 पर फिर से टैब करें (फिर मेरे पूर्व-निर्मित मैक्रो करें)
  • तब टैब फिर से मुझे r2 c1 पर वापस ले जाता है

लेकिन इसे खाली टेबल सेल से टकराने पर रोकना पड़ता है। मेरे मैक्रोज़ अनंत छोरों को मारते रहते हैं, नई कोशिकाओं का निर्माण जारी रखते हैं क्योंकि दस्तावेज़ की समाप्ति के लिए कई अलग-अलग जाँचों के बावजूद टैब कुंजी प्रोग्रामेटिक रूप से जाँची जाती है। वहाँ से बाहर सभी समाधान यह मान लेते हैं कि यह एक सामान्य, गैर-सक्षम दस्तावेज़ और कोड है:

Do Until ActiveDocument.Bookmarks("\Sel") = ActiveDocument.Bookmarks("\EndOfDoc")
    '(Do something)
Loop

विफल रहता है।


सब लूपर () 'मेरे असफल vba का एक उदाहरण: ActiveDocument.Content.Find के साथ .Execute (फ़ॉरवर्ड: = ट्रू, फॉर्मेट: = ट्रू) = ट्रू सिलेक्शन.मूव्हील यूनिट: = wdCM Selection.MoveLeft यूनिट: = wdCell सिलेक्शन .MoveLeft यूनिट: = wdCell Application.Run MacroName: = "FixParagraph2" लूप एंड के साथ अंत उप
क्रिस जी

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

जवाबों:


2

आप प्रत्येक सेल को सारणीबद्ध किए बिना प्रोग्राम की पंक्तियों और कोशिकाओं के माध्यम से पुनरावृति कर सकते हैं:

Sub ProcessScriptTable()
  Dim oTbl As Table
  Set oTbl = ActiveDocument.Tables(1)

  For Each oRow In oTbl.Rows
    Set oCell = oRow.Cells(3)

    'Do something with each cell
    MsgBox oCell.Range.Text
  Next

End Sub

मैंने @ एडम के समाधान की कोशिश की, लेकिन यह सिर्फ एक मैसेज बॉक्स दिखाता है जो हर बार कॉलम 3 में एक सेल तक पहुंचता है, वास्तव में मेरे पूर्व-निर्मित मैक्रो में चरणों को निष्पादित किए बिना। यह सेल के लिए कुछ भी नहीं करता है। यहाँ स्थूल है जैसा कि यह खड़ा है: उप वर्णनात्मक_3 () टेबल सेट के रूप में मंद oTbl = ActiveDocument.Tables (1) प्रत्येक oRow के लिए oTbl.Rows में सेट करें oCell = oRow .Cells (3) 'पूर्वनिर्मित मैक्रो जो एक स्टैंडअलोन मैक्रो के रूप में काम करता है। मुझे आवश्यकतानुसार ट्रिमिंग वाक्य। मैक्रॉन नाम चलाएं: = "FixParagraph" MsgBox oCell.Range.Text Next End Sub
chris G

@ क्रिस, क्या आपको उपरोक्त कोड के साथ मौजूदा मैक्रो को एकीकृत करने में परेशानी हो रही है? यदि हां, तो कृपया अपने मैक्रो के साथ अपनी पोस्ट को संपादित करें और हम मदद कर सकते हैं।
एडम
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.