עיצוב מותנה על רשימת ערכים

אנונימי
2024-09-30T11:08:27+00:00

האם יש אפשרות לעשות עיצוב מותנה באופן הבא: יש לי גיליון 1 עם ערכים מסויימים וגיליון 2 עם רשימת ערכים בעמודה אחת. אני רוצה שהוא יצבע לי בגיליון 1 את כל הערכים שמופיעים בעמודה שבגיליון 2. תודה

Microsoft 365 ו- Office | Excel | לשימוש ביתי | Windows

שאלה נעולה. השאלה הזו הועברה מקהילת התמיכה של Microsoft. באפשרותך להצביע אם היא שימושית, אך לא ניתן להוסיף הערות או תשובות או לעקוב אחר השאלה.

0 הערות אין הערות
התשובה התקבלה על-ידי מחבר השאלה
אנונימי
2024-10-07T04:09:37+00:00

תגובה זו תורגמה באופן אוטומטי. כתוצאה מכך, ייתכן שיש שגיאות דקדוק או מילים מוזרות.

היי Hodaya863,

אני מבין את הדרישות שלך. 

להלן הגרסה ששונתה של הקוד, אשר מוסיפה קצת אינטראקטיביות. כעת, הוא יבקש ממך לבחור באופן ידני את העמודה בגיליון1 שיש לסמן. הוא יחפש תוכן רק בהתבסס על השדות בעמודה A של גיליון2. 

Sub HighlightMatches()
    Dim ws1 As Worksheet, ws2 As Worksheet
    Dim cell1 As Range, cell2 As Range
    Dim searchString As String
    Dim startPos As Long
    Dim selectedColumn As Range
    
    ' Set worksheets
    Set ws1 = ThisWorkbook.Sheets("Sheet1")
    Set ws2 = ThisWorkbook.Sheets("Sheet2")
    
    ' Get the selected column
    Set selectedColumn = Application.InputBox("Please select a column in Sheet1", Type:=8)
    
    ' Loop through column A in Sheet2
    For Each cell2 In ws2.Range("A1:A" & ws2.Cells(ws2.Rows.Count, "A").End(xlUp).Row)
        searchString = cell2.Value
        
        ' Loop through the selected column in Sheet1
        For Each cell1 In selectedColumn
            startPos = InStr(1, cell1.Value, searchString, vbTextCompare)
            
            ' If a match is found, highlight it
            If startPos > 0 Then
                With cell1.Characters(startPos, Len(searchString)).Font
                    .Color = RGB(255, 0, 0) ' Set highlight color to red
                    .Bold = True
                End With
            End If
        Next cell1
    Next cell2
End Sub

החלקים המתאימים של הקוד הוסברו באנגלית, וניתן לבצע שינויים קלים לפי הצורך. עדיין תוכל להפעיל אותו על-ידי לחיצה על חץ המשולש הירוק בממשק התיכנות או על-ידי הקשה על Alt+F8 ישירות בגיליון האלקטרוני. 

אם אתה מוצא את התגובה שלי מועילה, אתה יכול לסמן כן תחת התשובה שלי, כך שמשתמשים עם צרכים דומים יוכלו למצוא את התשובה מהר יותר. זה יעזור לי מאוד להמשיך לספק תמיכה טכנית בקהילה. תודה על שיתוף הפעולה. 

מצפה שתשתף אותנו בתוצאות.

שא ברכה

יונתן Z - MSFT | מומחה תמיכה קהילתית של Microsoft

האם התשובה הזו הייתה מועילה?

אדם אחד ציין שתשובה זו מועילה.
0 הערות אין הערות

6 תשובות נוספות

מיין לפי: החדש ביותר
  1. אנונימי
    2024-10-09T04:19:19+00:00

    תגובה זו תורגמה באופן אוטומטי. כתוצאה מכך, ייתכן שיש שגיאות דקדוק או מילים מוזרות.

    יקירתי,Hodaya863

    אני שמח שהבעיה שלך נפתרה על ידי יהונתן.ז.

    כדי לעזור ללקוחות אחרים שעשויים להיתקל באותה בעיה, אנא לחץ על 'כן' מתחת לתשובה של Jonathan.Z שהיה הפתרון עבורך. 

    זה מדגיש את המידע עבור לקוחות אחרים. תודה על שיתוף הפעולה. 

    שיהיה לך יום טוב!

    לוסיה וו - MSFT | מומחה תמיכה קהילתית של Microsoft

    האם התשובה הזו הייתה מועילה?

    0 הערות אין הערות
  2. אנונימי
    2024-10-07T06:15:40+00:00

    עובד מצוין. אלף תודות!

    האם התשובה הזו הייתה מועילה?

    0 הערות אין הערות
  3. אנונימי
    2024-10-06T06:47:49+00:00

    מדהים! תודה רבה

    אפשר לערוך את זה כך שבמקום שיחפש כל ערך בגיליון 2, יחפש רק בטווח ספציפי (למשל רק עמודה A) ובגיליון 1 יצבע רק טווח מסויים (עמודות מסויימות)

    כי נראה שכרגע הריצה של הסקריפט ממש ארוכה, לא הצלחתי לסיים אותה

    האם התשובה הזו הייתה מועילה?

    0 הערות אין הערות
  4. אנונימי
    2024-10-05T05:58:26+00:00

    תגובה זו תורגמה באופן אוטומטי. כתוצאה מכך, ייתכן שיש שגיאות דקדוק או מילים מוזרות.

    היי Hodaya863,

    תודה שביקרת ב- Microsoft Community.

    תכונת העיצוב המותנה אינה יכולה לשנות את העיצוב של חלק מהטקסט בתוך תא. עם זאת, ניתן להשיג את הדרישה שלך באמצעות סקריפט VBA פשוט. בהתבסס על הדוגמה שהזכרת בתשובתך, כתבתי את הקוד הבא. 

    Sub HighlightMatches()
    
      Dim ws1 As Worksheet, ws2 As Worksheet
    
       Dim cell1 As Range, cell2 As Range
    
      Dim searchString As String
    
      Dim startPos As Long
    
      Set ws1 = ThisWorkbook.Sheets("Sheet1")
    
      Set ws2 = ThisWorkbook.Sheets("Sheet2")
    
      For Each cell2 In ws2.UsedRange
    
          searchString = cell2.Value
    
          For Each cell1 In ws1.UsedRange
    
              startPos = InStr(1, cell1.Value, searchString, vbTextCompare)
    
              If startPos > 0 Then
    
                   With cell1.Characters(startPos, Len(searchString)).Font
    
                       .Color = RGB(255, 0, 0) 
    
                       .Bold = True
    
                   End With
    
              End If
    
          Next cell1
    
      Next cell2
    
    End Sub
    

    עקרון העבודה של קוד זה הוא:

    1. חזור על כל תא בגיליון2.
    2. עבור כל ערך תא, חפש התאמה בגיליון1.
    3. אם נמצאה התאמה, סמן את הטקסט התואם (הגדר אותו לאדום ומודגש).

    באפשרותך להקיש Alt+F11 כדי לפתוח את עורך ה- VBA של Excel, להוסיף מודול חדש לרשימת הפרוייקטים, להדביק את הקוד במודול ולאחר מכן ללחוץ על חץ המשולש הירוק כדי להפעיל אותו. להלן האפקט שבדקתי (התמונה מציגה את הגרסה האנגלית של Excel). אני מקווה שזה עונה על הצרכים שלך. 

    אם יש לך שאלות, אל תהסס לענות.

    שא ברכה

    יונתן Z - MSFT | מומחה תמיכה קהילתית של Microsoft

    האם התשובה הזו הייתה מועילה?

    0 הערות אין הערות