ایجاد سوال
dark_mode
0 دوستدار 0 امتیاز منفی
8 visibility
موضوع: آفیس توسط:

کلمات معمولاً با یک پردازشگر کلمه مانند مایکروسافت ورد مرتبط هستند. با این حال، بسیاری از افراد در برنامه صفحه گسترده خود با کلمات نیز کار می کنند. (یک بار یک همکار داشتم که همیشه از اکسل برای نوشتن یادداشت استفاده می کرد.) ممکن است مواقعی بخواهید تعداد کلمات یک کاربرگ را که از شخصی دریافت می کنید بشمارید. توانایی های بومی برای انجام چنین کاری در Word وجود دارد، اما در اکسل نه.

البته یک راه حل این است که ورک بوک خود را در Word بارگذاری کنید، تعداد کلمات را در آنجا انجام دهید و سپس فایل را ببندید. با این حال، این تقریباً به اندازه ایجاد یک ماکرو برای شمارش کلمات در خود اکسل انعطاف پذیر نیست. ماکرو زیر، CountWords، تعداد کلمات را در هر محدوده ای که در یک کاربرگ انتخاب می کنید، می شمارد:

Sub CountWords()
    Dim lWords As Long
    Dim Raw As String
    Dim c As Range

    lWords = 0
    For Each c In Selection
        If Not c.HasFormula Then
             Get text in cell
            Raw = c.Value
             Get rid of extra spaces before, after, and within text
            Raw = Application.Trim(Raw)
             Get rid of any manual line breaks
             and dont assume that they represent the start
             of a new word
            Raw = Replace(Raw, Chr(10), "")
             Now count spaces in remaining text
            lWords = lWords + Len(Raw) - Len(Replace(Raw, " ", ""))
             Always increment word count if there is something in
             the cell. If, however, there is nothing there, then
             dont add a word.
            If Len(Raw) > 0 Then lWords = lWords + 1
        End If
    Next c
    MsgBox "There are " & lWords & " words in the selection."
End Sub

توجه داشته باشید که ماکرو از هر سلول در محدوده انتخابی شما عبور می کند. سپس هر سلولی که حاوی فرمول باشد را نادیده می گیرد. در تمام سلول های دیگر اساساً تعداد فضاهای سلول را می شمارد. (یک یا چند فاصله برای جدا کردن کلمات در نظر گرفته می شود.) همچنین توجه داشته باشید که به جای تابع VBA Trim از تابع برگه Trim استفاده می شود. دلیل آن این است که نسخه کاربرگ از فضاهای اضافی در وسط متن خلاص می شود، در حالی که تابع VBA فقط از فضاهای پیشرو یا انتهایی خلاص می شود. سپس تعداد کلمات در یک جعبه پیام برای اصلاح شما نمایش داده می شود.

ماکرو در محدوده های نسبتا کوچک بسیار سریع است. اگر محدوده بزرگی را انتخاب کنید (مانند کل کاربرگ)، در این صورت ماکرو می تواند زمان زیادی را صرف کند تا کار خود را به پایان برساند. هدف از این کار این است که مطمئن شوید قبل از فراخوانی ماکرو فقط محدوده واقعی را که می خواهید تجزیه و تحلیل کنید انتخاب کنید.

اگر خواستی، با این لینک از ما حمایت کن

پاسخ شما

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

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

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

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

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

23.2k سوال

8.5k پاسخ

608 دیدگاه

9.7k کاربر

120 نفر آنلاین
0 عضو و 120 مهمان در سایت حاضرند
بازدید امروز: 4111
بازدید دیروز: 27627
بازدید کل: 15178937
...