ایجاد سوال
dark_mode
0 دوستدار 0 امتیاز منفی
27 visibility
موضوع: آفیس توسط:
هاکان به یک ماکرو نیاز دارد که کاراکترها (بدون فاصله) را در یک سند word شمارش کند و هر 1000 حرف را برجسته کند. ایجاد چنین ماکرو نسبتاً ساده ای است - شما فقط باید همه کاراکترهای یک سند را به نوبه خود بررسی کنید و فقط آنهایی را که فاصله نیستند حساب کنید. زیر یک ماکرو کوچک ساده است که این کار را انجام می دهد:
Sub CountThousands1() Dim J As Long Dim X As Integer X = 0 With ActiveDocument For J = 1 To .Characters.Count If .Characters(J) <> " " Then X = X + 1 If X = 1000 Then .Characters(J).Select Selection.Range.HighlightColorIndex = wdYellow X = 0 Beep End If Next J End With End Sub
ماکرو به اندازه کافی ساده است. مجموعه شخصیت‌ها را بررسی می‌کند که شامل تمام شخصیت‌های یک سند است. مشکل ماکرو این است که کند است - بسیار کند. Word در بررسی شخصیت های فردی به این روش کارایی وحشتناکی ندارد. (به نظر می‌رسد که هر بار که به یکی از اعضای مجموعه شخصیت‌ها ارجاع می‌دهید، Word باید همه کاراکترها را از ابتدای سند، مجدداً بررسی کند.)
یک رویکرد متفاوت این است که به سادگی از سند عبور کنید و یک انتخاب را تا زمانی که به 1000 کاراکتر غیرفاصله برسید گسترش دهید.
Sub CountThousands2() Dim X As Integer Dim sRaw As String Dim sProc As String Selection.MoveRight Unit:=wdCharacter, Count:=1000, Extend:=wdExtend While Len(Selection) = 1000 sRaw = Selection sProc = Replace(sRaw, " ", "") X = 1000 - Len(sProc) While X > 0 Selection.MoveRight Unit:=wdCharacter, Count:=X, Extend:=wdExtend sRaw = Selection sProc = Replace(sRaw, " ", "") X = 1000 - Len(sProc) Wend Selection.Collapse Direction:=wdCollapseEnd Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend Selection.Range.HighlightColorIndex = wdYellow Selection.Collapse Direction:=wdCollapseEnd Selection.MoveRight Unit:=wdCharacter, Count:=1000, Extend:=wdExtend Wend End Sub
این ماکرو را با نقطه درج در ابتدای سند شروع کنید. سپس ماکرو هزار کاراکتر را می گیرد، آن انتخاب را به یک متغیر (sRaw) اختصاص می دهد، متغیری ایجاد می کند که تمام فضاهای آن حذف شده است (sProc) و سپس طول sProc را رقم می زند. اگر کمتر از 1000 باشد، انتخاب با هر تعداد نویسه که کوتاه بود تمدید می‌شود و این روند تکرار می‌شود. هنگامی که انتخاب شامل 1000 کاراکتر غیر فاصله است، برجسته تنظیم می شود و ماکرو به بلوک بعدی کاراکترها می رود.
اگر خواستی، با این لینک از ما حمایت کن

پاسخ شما

looks_5نام شما برای نمایش - اختیاری
حریم شخصی : آدرس ایمیل شما محفوظ میماند و برای استفاده های تجاری و تبلیغاتی به کار نمی رود
عدد چهار رقمی در تصویر را وارد کنید

برای جلوگیری از این تایید در آینده, لطفا وارد شده یا ثبت نام کنید.
اگر حساب گوگل دارید به راحتی وارید شوید

0 پاسخ وجود دارد

سوال مشابهی یافت نشد

برای دسترسی راحت به مطالب سایت ، اپلیکیشن سایت را نصب کنید
و لطفا بعد از نصب امتیاز دهید. با تشکر از حمایت شما

23.2k سوال

8.5k پاسخ

614 دیدگاه

11.1k کاربر

105 نفر آنلاین
0 عضو و 105 مهمان در سایت حاضرند
بازدید امروز: 2819
بازدید دیروز: 14089
بازدید کل: 20221863
...