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

اسکات تعجب می کند که چگونه می تواند اکسل را به طور خودکار یک خط تیره بین هر حرف در یک سلول خاص اضافه کند. به عنوان مثال، اگر سلول A1 حاوی "خانه" باشد، اسکات مایل است آن را به "خانه" تبدیل کند.

این را می توان با یک فرمول انجام داد، اما به سرعت غیرقابل تحمل می شود. به عنوان مثال، از فرمول زیر می توان برای قرار دادن خط تیره بین حروف هر چیزی که در سلول A1 تایپ می کنید استفاده کرد:

=CHOOSE(LEN(A1),A1,LEFT(A1,1) & "-" & RIGHT(A1,1),
LEFT(A1,1) & "-" & MID(A1,2,1) & "-" & RIGHT(A1,1),
LEFT(A1,1) & "-" & MID(A1,2,1) & "-" & MID(A1,3,1) & "-"
& RIGHT(A1,1),LEFT(A1,1) & "-" & MID(A1,2,1) & "-"
& MID(A1,3,1) & "-" & MID(A1,4,1) & "-" & RIGHT(A1,1),
LEFT(A1,1) & "-" & MID(A1,2,1) & "-" & MID(A1,3,1)
& "-" & MID(A1,4,1) & "-" & MID(A1,5,1) & "-" & RIGHT(A1,1))

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

یک رویکرد بهتر استفاده از ماکرو برای انجام تبدیل است. اگر می خواهید خط تیره ها را مستقیماً در سلول وارد کنید، می توانید از یک ماکرو مانند زیر استفاده کنید:

Sub AddDashes1()
    Dim Cell As Range
    Dim sTemp As String
    Dim C As Integer

    For Each Cell In Selection
        sTemp = ""
        For C = 1 To Len(Cell)
            sTemp = sTemp & Mid(Cell, C, 1) & "-"
        Next
        Cell.Value = Left(sTemp, Len(sTemp) - 1)
    Next
End Sub

این ماکرو برای استفاده در محدوده انتخابی از سلول ها طراحی شده است. فقط سلول هایی را که می خواهید تبدیل کنید انتخاب کنید و سپس ماکرو را اجرا کنید. خط تیره ها بین هر حرف در سلول ها اضافه می شوند.

اگر ترجیح می دهید مقادیر سلول اصلی را تغییر ندهید، می توانید یک تابع تعریف شده توسط کاربر ایجاد کنید که این کار را انجام دهد:

Function AddDashes2(Src As String) As String
    Dim sTemp As String
    Dim C As Integer

    Application.Volatile
    sTemp = ""
    For C = 1 To Len(Src)
        sTemp = sTemp & Mid(Src, C, 1) & "-"
    Next
    AddDashes2 = Left(sTemp, Len(sTemp) - 1)
End Function

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

=AddDashes2(A1)

اگر می‌خواهید مطمئن شوید که عملکرد کمی قوی‌تر است، می‌توانید آن را طوری تغییر دهید که چندین کلمه را مدیریت کند. در چنین مثالی نمی‌خواهید که یک فاصله را به‌عنوان یک «حرف قابل خط‌شکن» در نظر بگیرد. به عنوان مثال، شما می خواهید روتین به "یک دو" خط تیره اضافه کند تا به جای "یک - دو" به صورت "یک دو" ظاهر شود. تغییر زیر در تابع این کار را انجام می دهد:

Function AddDashes3(Src As String) As String
    Dim sTemp As String
    Dim C As Integer

    Application.Volatile
    sTemp = ""
    For C = 1 To Len(Src)
        sTemp = sTemp & Mid(Src, C, 1)
        If Mid(Src, C, 1) <> " " And
          Mid(Src, C + 1, 1) <> " " And
          C < Len(Src) Then
            sTemp = sTemp & "-"
        End If
    Next
    AddDashes3 = sTemp
End Function
اگر خواستی، با این لینک از ما حمایت کن

پاسخ شما

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

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

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

سوالات مشابه

برای دسترسی راحت به مطالب سایت ، اپلیکیشن سایت را نصب کنید
و لطفا بعد از نصب امتیاز دهید. با تشکر از حمایت شما
0 دوستدار 0 امتیاز منفی
0 پاسخ 27 visibility
0 دوستدار 0 امتیاز منفی
0 پاسخ 30 visibility
0 دوستدار 0 امتیاز منفی
0 پاسخ 44 visibility
0 دوستدار 0 امتیاز منفی
0 پاسخ 31 visibility
0 دوستدار 0 امتیاز منفی
0 پاسخ 43 visibility
ارسال شده در 26 تیر 1402 موضوع: آفیس توسط: Admin

24.3k سوال

9.6k پاسخ

614 دیدگاه

11.2k کاربر

220 نفر آنلاین
1 عضو و 219 مهمان در سایت حاضرند
اعضای حاضر در سایت
بازدید امروز: 17097
بازدید دیروز: 17853
بازدید کل: 20329279
...