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

دانش آموزان Dorothys در حال سفارشی سازی یک ورک بوک شبیه سازی دسته چک هستند و نام پیش فرض را با نام خود جایگزین می کنند. به عنوان مثال، او از آنها می خواهد که "جیسون اندرسون" را جستجو کنند و نام را با "سو اسمیت" جایگزین کنند. 22 مورد از "جیسون اندرسون" در کادرهای متنی در سراسر هشت برگه کاربرگ و چندین مورد دیگر در خود کاربرگ ها وجود دارد. دوروتی تعجب می کند که چگونه می تواند همه رخدادهای کاربرگ و همه موارد نظر را در یک زمان پیدا و جایگزین کند.

هیچ راهی برای انجام این کار بدون استفاده از ماکرو وجود ندارد. ماکرو باید از طریق هر سلول در ورک بوک، هر نظر و هر کادر متنی نگاه کند تا ببیند آیا نیاز به انجام تغییرات است یا خیر. در زیر نمونه ای از نحوه انجام این کار آورده شده است:

Sub ReplaceNames()
    Dim sDefaultName As String
    Dim sNewName As String
    Dim sht As Worksheet
    Dim cmt As Comment
    Dim wks As Worksheet
    Dim sCmt As String
    Dim shp As Shape

    sDefaultName = "Jason Anderson"
    sNewName = InputBox("Enter your first and last name.", _
      "Name Replacement")

     Replace cell text
    For Each sht In ActiveWorkbook.Worksheets
        sht.Cells.Replace what:=sDefaultName, _
          Replacement:=sNewName, LookAt:=xlPart, _
          SearchOrder:=xlByRows, MatchCase:=False, _
          SearchFormat:=False, ReplaceFormat:=False
    Next sht

     Replace comment text
    For Each wks In ActiveWorkbook.Worksheets
        For Each cmt In wks.Comments
            sCmt = cmt.Text
            If InStr(sCmt, sDefaultName) <> 0 Then
                sCmt = Application.WorksheetFunction. _
                  Substitute(sCmt, sDefaultName, sNewName)
                cmt.Text Text:=sCmt
            End If
        Next cmt
    Next wks
    Set wks = Nothing
    Set cmt = Nothing

     Replace text box text
    On Error Resume Next
    For Each wks In ActiveSheet.Parent.Worksheets
        For Each shp In wks.Shapes
            With shp.TextFrame.Characters
                .Text = Application.WorksheetFunction.Substitute( _
                  .Text, sDefaultName, sNewName)
            End With
        Next shp
    Next wks
End Sub

ماکرو از کاربر می خواهد نام جدیدی وارد کند و سپس سلول ها، نظرات و جعبه های متن را جستجو می کند تا ببیند آیا نام پیش فرض ("جیسون اندرسون") وجود دارد یا خیر. اگر چنین است، جایگزین مناسب ساخته می شود.

اگر نمی خواهید از ماکروها برای انجام جستجو استفاده کنید، شاید تغییر ساختار ورک بوک مفید باشد. برای مثال، می توانید یک «کاربرگ ورودی داده» ایجاد کنید که در آن اطلاعات رایج - مانند نام افراد - وارد شود. در کاربرگ های دیگر، نام کاربرگ ورودی داده با استفاده از فرمول ها ارجاع داده می شود. بنابراین، یک تغییر در کاربرگ ورودی داده، و نام در همه کاربرگ های دیگر تغییر می کند.

استفاده از این رویکرد می تواند با نظرات نیز کار کند. می توانید نظر یا شکل را انتخاب کنید و در نوار فرمول، فرمول مرجعی مانند این را وارد کنید:

=MyName

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

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

پاسخ شما

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

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

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

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

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

23.2k سوال

8.5k پاسخ

608 دیدگاه

9.7k کاربر

99 نفر آنلاین
0 عضو و 99 مهمان در سایت حاضرند
بازدید امروز: 10553
بازدید دیروز: 10986
بازدید کل: 15368579
...