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

گری یک کاربرگ دارد که شامل رشته های متنی بدون ساختار است که باید آنها را به عناصر جزء تجزیه کند. گاهی اوقات او نیاز به جستجوی انواع متن دارد تا یک شخصیت خاص. برای مثال، او ممکن است بخواهد اولین، Nامین یا آخرین رخداد هر کاراکتر پررنگ (یا هر کاراکتر مورب) را در سلول پیدا کند.

هیچ تابع یا ابزار ذاتی در اکسل برای انجام این کار وجود ندارد. ویژگی معمولی Find and Replace موارد منطبق را برای قالب بندی برمی گرداند، اما موقعیتی را که در آن مطابقت ها اتفاق می افتد، برمی گرداند. برای اینکه دقیقاً در مورد چیزی که می خواهید پیدا کنید، باید از یک ماکرو استفاده کنید. اگر ماکرو را به عنوان یک تابع تعریف شده توسط کاربر پیاده سازی کنید، می توانید اطلاعات موقعیت یابی را به کاربرگ خود برگردانید.

ماکرو زیر یک محدوده (در نظر گرفته شده برای یک سلول خاص) را می پذیرد، نشانگر این است که آیا شما می خواهید پررنگ یا مورب (یا هر دو)، و وقوع آن قالب بندی را بپذیرید.

Function FindNth(r As Range, sType As String, N As Integer) As Integer
    Dim J As Integer
    Dim iCount As Integer
    Dim sStyle As String
    
    If r.Count = 1 Then
        FindNth = 0
        iCount = 0
        For J = 1 To Len(r.Text)
            sStyle = r.Characters(J, 1).Font.FontStyle
            If LCase(sStyle) = LCase(sType) Then
                iCount = iCount + 1
                If N = 0 Then
                    FindNth = J
                Else
                    If N = iCount Then
                        FindNth = J
                        Exit For
                    End If
                End If
            End If
        Next J
    Else
        FindNth = -1
    End If
End Function

برای استفاده از ماکرو، از یکی از فرمول های زیر در کاربرگ خود استفاده کنید:

=FindNth(A1, "bold", 2)
=FindNth(A1, "italic", 3)
=FindNth(A1, "bold italic", 1)

در هر مورد، پارامتر سوم مشخص می کند که کدام رخداد قالب بندی داده شده را می خواهید پیدا کنید. تابع موقعیت کاراکتر آن رخداد را در داخل سلول برمی گرداند. اگر چنین اتفاقی وجود نداشته باشد، 0 برگردانده می شود. اگر چندین سلول را در پارامتر اول تابع مشخص کنید، یک -1 را برمی گرداند. اگر یک رخداد 0 را مشخص کنید، موقعیت کاراکتر آخرین وقوع از فرمت مشخص شده برمی گردد.

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

پاسخ شما

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

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

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

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

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

23.2k سوال

8.5k پاسخ

608 دیدگاه

9.7k کاربر

132 نفر آنلاین
0 عضو و 132 مهمان در سایت حاضرند
بازدید امروز: 25337
بازدید دیروز: 27244
بازدید کل: 15227396
...