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

جک تعجب می کند که چگونه می تواند یک کلمه یا عبارت خاص را جستجو کند و در یک مرحله تمام سلول های حاوی آن را برجسته کند تا بتواند آنها را بریده یا کپی کند و در جای دیگری جایگذاری کند.

انتخاب سلول های حاوی متنی که می خواهید استفاده کنید بسیار آسان است. برای انجام این کار می توانید از ویژگی استاندارد Find and Replace استفاده کنید. این مراحل را دنبال کنید:

image

شکل 1. تب Find از کادر محاوره ای Find and Replace.

  1. Ctrl+F را فشار دهید . اکسل تب Find از کادر محاوره ای Find and Replace را نمایش می دهد.
  2. با کلیک بر روی دکمه Options کادر گفتگو را باز کنید. (شکل 1 را ببینید.)
  3. در کادر Find What، متنی را که می خواهید پیدا کنید وارد کنید.
  4. از کنترل‌های موجود در کادر محاوره‌ای برای محدود کردن موارد مطابق دلخواه استفاده کنید.
  5. روی Find All کلیک کنید. کادر محاوره‌ای برای نشان دادن تمام موارد منطبق شده گسترش می‌یابد.
  6. Ctrl+A را فشار دهید . این همه سلول هایی را که پیدا شده اند انتخاب می کند.
  7. روی Close کلیک کنید تا کادر محاوره ای رد شود.

خودشه. تا زمانی که در مرحله 4 روی Match Entire Cell Contents کلیک نکرده اید، اکسل تمام سلول هایی را که حاوی متنی است که در مرحله 3 مشخص کرده اید انتخاب می کند. در آن مرحله می توانید در صورت تمایل، قالب بندی را روی سلول ها اعمال کنید.

البته می‌توانید از قالب‌بندی شرطی برای قالب‌بندی پویا سلول‌هایی که حاوی متنی هستند که می‌خواهید برجسته کنید، استفاده کنید. تنها کاری که باید انجام دهید این است که شرطی را تنظیم کنید که از "Text Contains" به عنوان آزمایش استفاده کند. البته این کار تمام سلول‌هایی را که حاوی متن هستند انتخاب نمی‌کند، اما آنها را برجسته می‌کند تا بتوانید مکان آنها را انتخاب کنید.

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

Sub selCellbasedonValue()
    Dim c As Object
    Dim u As Range
    Dim v As Range
    Dim sInpt As String

    Set u = ActiveSheet.UsedRange

    sInpt = InputBox("Enter the search text")

    If sInpt > "" Then
        For Each c In u
            If Instr(LCase(sInpt),LCase(c.Value)) > 0 Then
                If v Is Nothing Then
                    Set v = Range(c.Address)
                Else
                    Set v = Union(v, Range(c.Address))
                End If
            End If
        Next
        v.Select
        Set v = Nothing
    End If

    Set u = Nothing
End Sub

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

Sub CopyFinds()
    Dim sSrch As String
    Dim sFirst As String
    Dim rPaste As Range
    Dim i As Integer
    Dim iLeftC As Integer
    Dim lTopR As Long
    Dim c As Object

    If Selection.Cells.Count = 1 Then
        MsgBox "Select the range to be searched."
        Exit Sub
    End If

    Specify search string
    sSrch = InputBox(Prompt:="Enter the search text")

   Set the paste address
    On Error Resume Next
    Set rPaste = Application.InputBox(Prompt:="Enter the upper-left " & _
      "cell address for the paste range", Type:=8)
    On Error GoTo 0

   Exit if canceled
    If TypeName(rPaste) <> "Range" Then Exit Sub

   Upper left cell to be used
    Set rPaste = rPaste.Range("A1")

    Set where paste will start and headings
    Application.ScreenUpdating = False
    lTopR = rPaste.Row
    iLeftC = rPaste.Column
    Cells(lTopR, iLeftC) = "Address"
    Cells(lTopR, iLeftC + 1) = "Cell Value"
    lTopR = lTopR + 1
    
    Start copying cell values
    With Selection
        Set c = .Find(What:=sSrch, LookAt:=xlPart, MatchCase:=True)
        If Not c Is Nothing Then
            sFirst = c.Address
            Do
                Cells(lTopR, iLeftC) = c.Address
                Cells(lTopR, iLeftC + 1) = c.Value
                Set c = .FindNext(c)
                lTopR = lTopR + 1
            Loop While Not c Is Nothing And c.Address <> sFirst
        End If
    End With
    
    Application.ScreenUpdating = True
    Cells(rPaste.Row, rPaste.Column).Select
End Sub

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

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

پاسخ شما

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

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

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

سوالات مشابه

برای دسترسی راحت به مطالب سایت ، اپلیکیشن سایت را نصب کنید
و لطفا بعد از نصب امتیاز دهید. با تشکر از حمایت شما
0 دوستدار 0 امتیاز منفی
0 پاسخ 30 visibility
ارسال شده در 26 تیر 1402 موضوع: آفیس توسط: Admin
0 دوستدار 0 امتیاز منفی
0 پاسخ 64 visibility
0 دوستدار 0 امتیاز منفی
0 پاسخ 96 visibility
ارسال شده در 29 آذر 1401 موضوع: شبکه های کامپیوتری توسط: بی نام

24.3k سوال

9.6k پاسخ

614 دیدگاه

11.2k کاربر

302 نفر آنلاین
0 عضو و 302 مهمان در سایت حاضرند
بازدید امروز: 53367
بازدید دیروز: 25180
بازدید کل: 20390678
...