השווה טווחים ב- Excel VBA - פקודות מאקרו קלות של Excel

תוכן העניינים

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

מַצָב:

הערה: הערך הייחודי היחיד בדוגמה זו הוא ה -3 מכיוון שכל הערכים האחרים מתרחשים לפחות באזור אחד נוסף. כדי לבחור טווח ("B2: B7, D3: E6, D8: E9"), החזק את המקש Ctrl ובחר כל אזור.

מקם כפתור פקודה בגליון העבודה שלך והוסף את שורות הקוד הבאות:

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

טווח עמום לשימוש כטווח, שטח יחיד כטווח, תא 1 כטווח, תא 2 כטווח, i כמספר שלם, j כמספר שלם

2. אנו מאתחלים את טווח אובייקט RangeToUse עם הטווח שנבחר.

הגדר rangeToUse = Selection

3. הוסף את השורה שמשנה את צבע הרקע של כל התאים ל'אי מילוי '. הוסף גם את השורה המסירה את גבולות כל התאים.

Cells.Interior.ColorIndex = 0
Cells.Borders.LineStyle = xlNone

4. הודע למשתמש כאשר הוא בוחר רק אזור אחד.

אם Selection.Areas.Count <= 1 ואז
MsgBox "אנא בחר יותר מאזור אחד."
אַחֵר
סוף אם

יש להוסיף את שורות הקוד הבאות (ב- 5, 6 ו -7) בין Else ו- End If.

5. צבע את התאים של האזורים שנבחרו.

rangeToUse.Interior.ColorIndex = 38

6. גבול כל אזור.

עבור כל אזור יחיד ב- rangeToUse.Areas
singleArea.BorderAround ColorIndex: = 1, משקל: = xlThin
הסינגל הבא Area

7. שאר תוכנית זו נראית כדלקמן.

עבור i = 1 כדי rangeToUse.Areas.Count
עבור j = i + 1 ל- rangeToUse.Areas.Count
עבור כל תא 1 ב rangeToUse.Areas (i)
עבור כל תא 2 ב rangeToUse.Areas (j)
אם cell1.Value = cell2.Value לאחר מכן
cell1.Interior.ColorIndex = 0
cell2.Interior.ColorIndex = 0
סוף אם
תא הבא 2
תא הבא 1
י הבא
הבא i

הסבר: זה אולי נראה קצת מכריע, אבל זה לא כל כך קשה. rangeToUse.Areas.Count שווה ל -3, כך ששתי שורות הקוד הראשונות מצטמצמות ל- For i = 1 עד 3 ו- j = i + 1 ל- 3. עבור i = 1, j = 2, Excel VBA משווה את כל הערכים של האזור הראשון עם כל הערכים של האזור השני. עבור i = 1, j = 3, Excel VBA משווה את כל הערכים של האזור הראשון עם כל הערכים של האזור השלישי. עבור i = 2, j = 3, Excel VBA משווה את כל הערכים של האזור השני עם כל הערכים של האזור השלישי. אם הערכים זהים, הוא מגדיר את צבע הרקע של שני התאים ל'אין מילוי 'מכיוון שהם אינם ייחודיים.

התוצאה כאשר אתה לוחץ על כפתור הפקודה בגיליון:

תוכל לעזור בפיתוח האתר, שיתוף הדף עם החברים שלך

wave wave wave wave wave