আমার এখানে ওয়ার্ড ভিবিএ কোডের দুটি ব্লক রয়েছে যা প্রতিটি পৃথকভাবে কাজ করে, তবে কাঙ্ক্ষিত ফলাফল পাওয়ার জন্য আমার একত্রিত হওয়া দরকার। একটি পাঠ্য (ওআরএনজি) এর ব্যাপ্তি সনাক্ত করে, অন্যটি একটি নির্বাচন পরিচালনা করে some কিছু পাঠ্য পরিবর্তন করতে অনুসন্ধান সন্ধান করুন। আমার বাছাই সীমাবদ্ধ করা দরকার o
পটভূমি: আমার শিরোনামের অধীনে বিভাগগুলিতে বিভক্ত নিউজ নিবন্ধগুলির একটি পরিবর্তনশীল তালিকা রয়েছে (শিরোনাম 1 শৈলীতে একক অনুচ্ছেদ), যাও পরিবর্তনশীল। আমার নিবন্ধের উত্স রেখাটি নির্বাচন করতে হবে (সাহসের সাথে একক অনুচ্ছেদ) এবং এটি নিবন্ধের শিরোনামের শেষে (শিরোনাম 2 স্টাইলে একক অনুচ্ছেদ) অনুলিপি করতে হবে। তবে বিভাগের শিরোনাম যদি একটি নির্দিষ্ট শব্দ হয় তবে এই বিভাগ থেকে কিছু বিভাগকে বাদ দেওয়া দরকার।
পরিস্থিতি: নিবন্ধের সোর্স লাইনগুলি খুঁজে পেতে এবং নিবন্ধ শিরোনামের শেষে (সিলেকশন.ফাইন্ড ব্যবহার করে পুরো ডকুমেন্টটি লুপিং) এ অনুলিপি করার জন্য আমার কাছে কার্যকরী কোড রয়েছে। প্রযোজ্য বিভাগের শিরোলেখগুলির মধ্যে সীমা (ওআরএনজি) তৈরি করে বিভাগের মাধ্যমে নথির অংশটি লুপ করে পাঠ্য বিভাগের প্রথম বিভাগটি প্রয়োগ করা দরকার যেখানে পাঠ্যের বিভাগগুলি সনাক্ত করতে আমার কাছে কার্যকরী কোড রয়েছে। আমাকে যা করতে হবে তা হল কোডের দ্বিতীয় সেট দ্বারা নির্দিষ্ট রেঞ্জের মধ্যে কোডের প্রথম সেটটি (যা নির্বাচন-ফাইন্ডের উপর ভিত্তি করে) চালানো হয়। আমার উদ্দেশ্যটি ছিল রেঞ্জগুলি চিহ্নিত করার জন্য কোডটি লুপ করা এবং এটি প্রতিটি পরিসীমা চিহ্নিত করে, সেই সীমাটির মধ্যে শিরোনামগুলিতে উত্স রেখাগুলি অনুলিপি করার জন্য কোডটি চালান, তবে আমি নির্বাচনকে সীমাবদ্ধ করার কোনও উপায় খুঁজে পাই না search নির্দিষ্ট ব্যাপ্তি (ওআরএনজি)।
কেউ কি আমাকে এই সাহায্য করতে পারেন, দয়া করে?
কোডের প্রথম ব্লক (প্রযোজ্য বিভাগের শিরোনামগুলির মধ্যে ব্যাপ্তিগুলি চিহ্নিত করুন)
Sub SourceToArticleHeadersP2()
Dim oRng As Range
Dim oRngstart As Range
Dim oRngend As Range
Dim ArticleSource As Range
Dim ArticleHeader As Range
Dim excludedTerms(1 To 5) As String
excludedTerms(1) = "Term1"
excludedTerms(2) = "Term1"
excludedTerms(3) = "Term1"
excludedTerms(4) = "Term1"
excludedTerms(5) = "Term1"
Selection.HomeKey Unit:=wdStory
With Selection.Find
.Forward = True
.ClearFormatting
.Wrap = wdFindStop
.Style = ActiveDocument.Styles(wdStyleHeading1)
.Text = ""
.Execute
End With
Do While Selection.Find.Found
For i = 1 To 5
If InStr(1, Selection.Text, excludedTerms(i), vbTextCompare) Then
Selection.Collapse wdCollapseEnd
MsgBox excludedTerms(i) & " detected - skipping"
Selection.Find.Execute
End If
Next i
Set oRngstart = Selection.Range
MsgBox "Start = " & oRngstart
Selection.Collapse wdCollapseEnd
With Selection.Find
.Forward = True
.ClearFormatting
.Wrap = wdFindStop
.Style = ActiveDocument.Styles(wdStyleHeading1)
.Text = ""
.Execute
End With
If Selection.Find.Found Then
Set oRngend = Selection.Range
MsgBox "End = " & oRngend
Set oRng = ActiveDocument.Range(Start:=oRngstart.End, End:=oRngend.Start)
Selection.Collapse wdCollapseStart
Selection.Find.Execute
Else
MsgBox "End = End of Document"
Set oRng = ActiveDocument.Range(Start:=oRngstart.End, End:=ActiveDocument.Range.End)
End If
Loop
[SECOND BLOCK OF CODE GOES HERE]
End Sub
কোডের দ্বিতীয় ব্লক (উত্সের লাইনগুলি চিহ্নিত করুন এবং ফর্ম্যাটের উপর ভিত্তি করে নিবন্ধ শিরোনামের লাইনগুলিতে অনুলিপি করুন)। আমার এটি পরিবর্তন করতে হবে যাতে এটি কেবল পাঠ্য ওআরএনজি-র পাঠের পরিসরে কাজ করে।
With Selection.Find
.Forward = True
.ClearFormatting
.Wrap = wdFindStop
.Style = ActiveDocument.Styles(wdStyleHeading2)
.Text = ""
.Execute
End With
Do While Selection.Find.Found
Set ArticleHeader = ActiveDocument.Range(Selection.Range.Start, Selection.Range.End - 1)
With Selection.Find
.Forward = True
.ClearFormatting
.Wrap = wdFindStop
.Font.Bold = True
.Text = ""
.Execute
End With
Set ArticleSource = ActiveDocument.Range(Selection.Range.Start, Selection.Range.End - 1)
ArticleHeader.InsertAfter " (" & ArticleSource & ")"
Selection.Collapse wdCollapseEnd
With Selection.Find
.Forward = True
.ClearFormatting
.Wrap = wdFindStop
.Style = ActiveDocument.Styles(wdStyleHeading2)
.Text = ""
.Execute
End With
Loop
লক্ষ্য নথিতে এটির অনুরূপ লেআউট রয়েছে (বিভাগ এবং নিবন্ধগুলির সংখ্যা পরিবর্তনশীল)। উপরের কোডটিতে আমি যে লাইনগুলি সন্ধান করছি সেগুলি সাহসী:
[2+ খোলার পাঠ্য পৃষ্ঠা এবং টিওসি]
বিভাগ শিরোনাম 1 (স্টাইল: শিরোনাম 1)
নিবন্ধ 1 শিরোনাম (স্টাইল: শিরোনাম 2)
শিরোনাম পাঠ্যের পরিবর্তনীয় লাইন
নিবন্ধ 1 উত্সের নাম ( গা bold়ভাবে) শিরোনাম পাঠ্যের
আরও পরিবর্তনশীল লাইন
নিবন্ধের প্রধান পাঠ্য
পৃষ্ঠা বিরতি
নিবন্ধ 2 শিরোনাম (স্টাইল: শিরোনাম 2)
শিরোনাম পাঠ্যের পরিবর্তনীয় লাইন
নিবন্ধ 2 উত্সের নাম (সাহসী)
শিরোনাম পাঠ্যের আরও পরিবর্তনশীল লাইন
নিবন্ধের বডি পাঠ্য
পৃষ্ঠা বিরতি
বিভাগ শিরোনাম 2 (স্টাইল: শিরোনাম 1)
আর্টিকেল 3 শিরোনাম (স্টাইল: শিরোনাম 2)
শিরোনাম পাঠ্যের পরিবর্তনীয় লাইন
নিবন্ধ 3 উত্সের নাম (সাহসী)
শিরোনাম পাঠ্যের আরও পরিবর্তনশীল লাইন
নিবন্ধের বডি পাঠ্য
পৃষ্ঠা বিরতি
[...]
P2
আপনি orng সেট করতে নির্বাচন ব্যবহার করছেন। আপনি অন্যান্য ব্যাপ্তিগুলি (নিবন্ধ *) সংজ্ঞায়িত করেছেন তবে এটি পি 2-তে প্রদর্শিত হবে না। পি 2 oRng
একটি ব্যাপ্তিতে সেট করে শেষ হয় । হ্যাঁ? তারপরে পি 1 এ আপনি পি 2 এ সংজ্ঞায়িত ব্যাপ্তিগুলি ব্যবহার করেন তবে ব্যবহৃত হয় না এবং কোনওভাবেই ওআরএনজি ব্যবহার করবেন না। আমি পি 1 কলিং পি 2 বা পি 2 কে পি 1 দেখতে পাচ্ছি না।