כיצד לבחור תאים/טווחים באמצעות פרוצדורות Visual Basic ב- Excel
מיקרוסופט מספקת דוגמאות תכנות להמחשה בלבד, מבלי שהאחריות מתבטאת או משתמעת. זה כולל, אך אינו מוגבל, לאחריות המשתמעת של סחירות או כושרו למטרה מסוימת. מאמר זה נכתב בהנחה שאתם מכירים את שפת התכנות המודגמת ואת הכלים המשמשים ליצירת פרוצדורות ולניפוי שגיאות. מהנדסי התמיכה של Microsoft יכולים לסייע בהסברת הפונקציונליות של פרוצדורה מסוימת, אך הם לא ישנו את הדוגמאות כדי לספק פונקציונליות נוספת או לבנות פרוצדורות שיענו על צרכיך הספציפיים. הדוגמאות במאמר זה משתמשות בשיטות של Visual Basic המפורטות בטבלה הבאה.
Method Arguments
------------------------------------------
Activate none
Cells rowIndex, columnIndex
Application.Goto reference, scroll
Offset rowOffset, columnOffset
Range cell1
cell1, cell2
Resize rowSize, columnSize
Select none
Sheets index (or sheetName)
Workbooks index (or bookName)
End direction
CurrentRegion none
הדוגמאות במאמר זה משתמשות במאפיינים שבטבלה הבאה.
Property Use
---------------------------------------------------------------------
ActiveSheet to specify the active sheet
ActiveWorkbook to specify the active workbook
Columns.Count to count the number of columns in the specified item
Rows.Count to count the number of rows in the specified item
Selection to refer to the currently selected range
כיצד לבחור תא בגליון העבודה הפעיל
כדי לבחור את תא D5 בגליון העבודה הפעיל, באפשרותך להשתמש באחת מהדוגמאות הבאות:
ActiveSheet.Cells(5, 4).Select
-or-
ActiveSheet.Range("D5").Select
כיצד לבחור תא בגליון עבודה אחר באותה חוברת עבודה
כדי לבחור את תא E6 בגליון עבודה אחר באותה חוברת עבודה, באפשרותך להשתמש באחת מהדוגמאות הבאות:
Application.Goto ActiveWorkbook.Sheets("Sheet2").Cells(6, 5)
-or-
Application.Goto (ActiveWorkbook.Sheets("Sheet2").Range("E6"))
לחלופין, באפשרותך להפעיל את גליון העבודה ולאחר מכן להשתמש בשיטה 1 לעיל כדי לבחור את התא:
Sheets("Sheet2").Activate
ActiveSheet.Cells(6, 5).Select
כיצד לבחור תא בגליון עבודה בחוברת עבודה אחרת
כדי לבחור תא F7 בגליון עבודה בחוברת עבודה אחרת, באפשרותך להשתמש באחת מהדוגמאות הבאות:
Application.Goto Workbooks("BOOK2.XLS").Sheets("Sheet1").Cells(7, 6)
-or-
Application.Goto Workbooks("BOOK2.XLS").Sheets("Sheet1").Range("F7")
לחלופין, באפשרותך להפעיל את גליון העבודה ולאחר מכן להשתמש בשיטה 1 לעיל כדי לבחור את התא:
Workbooks("BOOK2.XLS").Sheets("Sheet1").Activate
ActiveSheet.Cells(7, 6).Select
כיצד לבחור טווח תאים בגליון העבודה הפעיל
כדי לבחור את הטווח C2:D10 בגליון העבודה הפעיל, באפשרותך להשתמש בכל אחת מהדוגמאות הבאות:
ActiveSheet.Range(Cells(2, 3), Cells(10, 4)).Select
ActiveSheet.Range("C2:D10").Select
ActiveSheet.Range("C2", "D10").Select
or
ActiveSheet.Range(ActiveSheet.Cells(2, 3), ActiveSheet.Cells(10, 4)).Select
or, alternatively, it could be simplified to this:
Range(Cells(2, 3), Cells(10, 4)).Select
כיצד לבחור טווח תאים בגליון עבודה אחר באותה חוברת עבודה
כדי לבחור את הטווח D3:E11 בגליון עבודה אחר באותה חוברת עבודה, באפשרותך להשתמש באחת מהדוגמאות הבאות:
Application.Goto ActiveWorkbook.Sheets("Sheet3").Range("D3:E11")
Application.Goto ActiveWorkbook.Sheets("Sheet3").Range("D3", "E11")
לחלופין, באפשרותך להפעיל את גליון העבודה ולאחר מכן להשתמש בשיטה 4 לעיל כדי לבחור את הטווח:
Sheets("Sheet3").Activate
ActiveSheet.Range(Cells(3, 4), Cells(11, 5)).Select
כיצד לבחור טווח תאים בגליון עבודה בחוברת עבודה אחרת
כדי לבחור את הטווח E4:F12 בגליון עבודה בחוברת עבודה אחרת, באפשרותך להשתמש באחת מהדוגמאות הבאות:
Application.Goto Workbooks("BOOK2.XLS").Sheets("Sheet1").Range("E4:F12")
Application.Goto _
Workbooks("BOOK2.XLS").Sheets("Sheet1").Range("E4", "F12")
לחלופין, באפשרותך להפעיל את גליון העבודה ולאחר מכן להשתמש בשיטה 4 לעיל כדי לבחור את הטווח:
Workbooks("BOOK2.XLS").Sheets("Sheet1").Activate
ActiveSheet.Range(Cells(4, 5), Cells(12, 6)).Select
כיצד לבחור טווח בעל שם בגליון העבודה הפעיל
כדי לבחור את הטווח בעל השם "בדיקה" בגליון העבודה הפעיל, באפשרותך להשתמש באחת מהדוגמאות הבאות:
Range("Test").Select
Application.Goto "Test"
כיצד לבחור טווח בעל שם בגליון עבודה אחר באותה חוברת עבודה
כדי לבחור את הטווח בעל השם "בדיקה" בגליון עבודה אחר באותה חוברת עבודה, באפשרותך להשתמש בדוגמה הבאה:
Application.Goto Sheets("Sheet1").Range("Test")
לחלופין, באפשרותך להפעיל את גליון העבודה ולאחר מכן להשתמש בשיטה 7 לעיל כדי לבחור את הטווח בעל השם:
Sheets("Sheet1").Activate
Range("Test").Select
כיצד לבחור טווח בעל שם בגליון עבודה בחוברת עבודה אחרת
כדי לבחור את הטווח בעל השם "בדיקה" בגליון עבודה בחוברת עבודה אחרת, באפשרותך להשתמש בדוגמה הבאה:
Application.Goto _
Workbooks("BOOK2.XLS").Sheets("Sheet2").Range("Test")
לחלופין, באפשרותך להפעיל את גליון העבודה ולאחר מכן להשתמש בשיטה 7 לעיל כדי לבחור את הטווח בעל השם:
Workbooks("BOOK2.XLS").Sheets("Sheet2").Activate
Range("Test").Select
כיצד לבחור תא ביחס לתא הפעיל
כדי לבחור תא המכיל חמש שורות מתחת וארבע עמודות מימין לתא הפעיל, באפשרותך להשתמש בדוגמה הבאה:
ActiveCell.Offset(5, -4).Select
כדי לבחור תא המכיל שתי שורות מעל ושלוש עמודות משמאל לתא הפעיל, באפשרותך להשתמש בדוגמה הבאה:
ActiveCell.Offset(-2, 3).Select
הערה
תתרחש שגיאה אם תנסה לבחור תא "מחוץ לגליון העבודה". הדוגמה הראשונה המוצגת לעיל תחזיר שגיאה אם התא הפעיל נמצא בעמודות A עד D, מאחר שהעברת ארבע עמודות שמאלה תעביר את התא הפעיל אל כתובת תא לא חוקית.
כיצד לבחור תא ביחס לתא אחר (לא לתא הפעיל)
כדי לבחור תא המכיל חמש שורות מתחת וארבע עמודות משמאל לתא C7, באפשרותך להשתמש באחת מהדוגמאות הבאות:
ActiveSheet.Cells(7, 3).Offset(5, 4).Select
ActiveSheet.Range("C7").Offset(5, 4).Select
כיצד לבחור טווח תאים היסט מטווח שצוין
כדי לבחור טווח תאים בגודל זהה לגודלו של הטווח בעל השם "בדיקה", אך הוא מוזז ארבע שורות למטה ושלוש עמודות ימינה, באפשרותך להשתמש בדוגמה הבאה:
ActiveSheet.Range("Test").Offset(4, 3).Select
אם הטווח בעל השם נמצא בגליון עבודה אחר (לא בגליון העבודה הפעיל), הפעל תחילה את גליון העבודה ולאחר מכן בחר את הטווח באמצעות הדוגמה הבאה:
Sheets("Sheet3").Activate
ActiveSheet.Range("Test").Offset(4, 3).Select
כיצד לבחור טווח שצוין ולשנות את גודל הבחירה
כדי לבחור את הטווח בעל השם "מסד נתונים" ולאחר מכן להרחיב את הבחירה בחמש שורות, באפשרותך להשתמש בדוגמה הבאה:
Range("Database").Select
Selection.Resize(Selection.Rows.Count + 5, _
Selection.Columns.Count).Select
כיצד לבחור טווח שצוין, להסט אותו ולאחר מכן לשנות את גודלו
כדי לבחור טווח של ארבע שורות מתחת ושלוש עמודות משמאל לטווח בעל השם "מסד נתונים" ולכלול שתי שורות ועמודה אחת יותר מהטווח בעל השם, באפשרותך להשתמש בדוגמה הבאה:
Range("Database").Select
Selection.Offset(4, 3).Resize(Selection.Rows.Count + 2, _
Selection.Columns.Count + 1).Select
כיצד לבחור את האיחוד של שני טווחים שצוינו או יותר
כדי לבחור את האיחוד (לדוגמה, האזור המשולב) של שני הטווחים בעלי השם "בדיקה" ו"דוגמה", באפשרותך להשתמש בדוגמה הבאה:
Application.Union(Range("Test"), Range("Sample")).Select
הערה
ששני הטווחים חייבים להיות באותו גליון עבודה כדי שדוגמה זו ת לפעול. כמו כן, שים לב כי פעולת השירות Union אינה פועלת בין גליונות. לדוגמה, שורה זו פועלת בצורה תקינה.
Set y = Application.Union(Range("Sheet1!A1:B2"), Range("Sheet1!C3:D4"))
אך שורה זו
Set y = Application.Union(Range("Sheet1!A1:B2"), Range("Sheet2!C3:D4"))
החזרת הודעת השגיאה:
פעולת שירות האיחוד של מחלקת היישום נכשלה
כיצד לבחור את ההצטלבות של שני טווחים שצוינו או יותר
כדי לבחור את ההצטלבות של שני הטווחים בעלי השם "בדיקה" ו"דוגמה", באפשרותך להשתמש בדוגמה הבאה:
Application.Intersect(Range("Test"), Range("Sample")).Select
שים לב ששני הטווחים חייבים להיות באותו גליון עבודה כדי שדוגמה זו ת לפעול.
דוגמאות 17-21 במאמר זה מתייחסות לערכת הנתונים לדוגמה הבאה. כל דוגמה מציינת את טווח התאים בנתונים לדוגמה שנבחרו.
A1: Name B1: Sales C1: Quantity
A2: a B2: $10 C2: 5
A3: b B3: C3: 10
A4: c B4: $10 C4: 5
A5: B5: C5:
A6: Total B6: $20 C6: 20
כיצד לבחור את התא האחרון של עמודה של נתונים רציפים
כדי לבחור את התא האחרון בעמודה רציפה, השתמש בדוגמה הבאה:
ActiveSheet.Range("a1").End(xlDown).Select
כאשר קוד זה נמצא בשימוש עם הטבלה לדוגמה, תא A4 ייבחר.
כיצד לבחור את התא הריק בתחתית עמודה של נתונים רציפים
כדי לבחור את התא שמתחת לטווח תאים רציפים, השתמש בדוגמה הבאה:
ActiveSheet.Range("a1").End(xlDown).Offset(1,0).Select
כאשר קוד זה נמצא בשימוש עם הטבלה לדוגמה, תא A5 ייבחר.
כיצד לבחור טווח שלם של תאים רציפים בעמודה
כדי לבחור טווח של תאים רציפים בעמודה, השתמש באחת מהדוגמאות הבאות:
ActiveSheet.Range("a1", ActiveSheet.Range("a1").End(xlDown)).Select
-or-
ActiveSheet.Range("a1:" & ActiveSheet.Range("a1"). _
End(xlDown).Address).Select
כאשר קוד זה נמצא בשימוש עם הטבלה לדוגמה, התאים A1 עד A4 ייבחרו.
כיצד לבחור טווח שלם של תאים שאינם רציפים בעמודה
כדי לבחור טווח תאים שאינו רציף, השתמש באחת מהדוגמאות הבאות:
ActiveSheet.Range("a1",ActiveSheet.Range("a" & ActiveSheet.Rows.Count).End(xlUp)).Select
-or-
ActiveSheet.Range("a1:" & ActiveSheet.Range("a" & ActiveSheet.Rows.Count). _
End(xlUp).Address).Select
כאשר קוד זה נמצא בשימוש עם הטבלה לדוגמה, הוא יבחר את התאים A1 עד A6.
כיצד לבחור טווח תאים מלבני
כדי לבחור טווח תאים מלבני מסביב לתא, השתמש בפעולת השירות CurrentRegion. הטווח שנבחר על-ידי פעולת השירות CurrentRegion הוא אזור המאוגד לכל שילוב של שורות ריקות ועמודות ריקות. להלן דוגמה לאופן השימוש בפעולת השירות CurrentRegion:
ActiveSheet.Range("a1").CurrentRegion.Select
קוד זה יבחר את התאים A1 עד C4. דוגמאות אחרות לבחירת אותו טווח תאים מפורטות להלן:
ActiveSheet.Range("a1", _
ActiveSheet.Range("a1").End(xlDown).End(xlToRight)).Select
-or-
ActiveSheet.Range("a1:" & _
ActiveSheet.Range("a1").End(xlDown).End(xlToRight).Address).Select
במקרים מסוימים, ייתכן שתרצה לבחור את התאים A1 עד C6. בדוגמה זו, פעולת השירות CurrentRegion לא יפעלו עקב השורה הריקה בשורה 5. הדוגמאות הבאות יבחרו את כל התאים:
lastCol = ActiveSheet.Range("a1").End(xlToRight).Column
lastRow = ActiveSheet.Cells(ActiveSheet.Rows.Count, lastCol).End(xlUp).Row
ActiveSheet.Range("a1", ActiveSheet.Cells(lastRow, lastCol)).Select
-or-
lastCol = ActiveSheet.Range("a1").End(xlToRight).Column
lastRow = ActiveSheet.Cells(ActiveSheet.Rows.Count, lastCol).End(xlUp).Row
ActiveSheet.Range("a1:" & _
ActiveSheet.Cells(lastRow, lastCol).Address).Select
כיצד לבחור עמודות מרובות שאינן רציפים באורך משתנה
כדי לבחור עמודות מרובות שאינן רציפים באורך משתנה, השתמש בטבלה לדוגמה ובדוגמה הבאה של המאקרו:
A1: 1 B1: 1 C1: 1 D1: 1
A2: 2 B2: 2 C2: 2 D2: 2
A3: 3 B3: 3 C3: 3 D3: 3
A4: B4: 4 C4: 4 D4: 4
A5: B5: 5 C5: 5 D5:
A6: B6: C6: 6 D6:
StartRange = "A1"
EndRange = "C1"
Set a = Range(StartRange, Range(StartRange).End(xlDown))
Set b = Range(EndRange, Range(EndRange).End(xlDown))
Union(a,b).Select
כאשר קוד זה נמצא בשימוש עם הטבלה לדוגמה, התאים A1:A3 ו- C1:C6 ייבחרו.
הערות על הדוגמאות
בדרך כלל ניתן להשמיט את המאפיין ActiveSheet, מכיוון שהוא משתמע אם גיליון ספציפי אינו נקרא בשם. לדוגמה, במקום
ActiveSheet.Range("D5").Select
באפשרותך להשתמש ב:
Range("D5").Select
בדרך כלל ניתן להשמיט את המאפיין ActiveWorkbook. אלא אם כן חוברת עבודה ספציפית נקראת בשם, חוברת העבודה הפעילה משתמעת.
בעת שימוש בפעולת השירות Application.Goto, אם ברצונך להשתמש בשתי פעולות שירות של תאים בפעולת השירות Range כאשר הטווח שצוין נמצא בגליון עבודה אחר (לא הפעיל), עליך לכלול את האובייקט Sheets בכל פעם. לדוגמה:
With ActiveWorkbook.Sheets("Sheet1")
Application.Goto .Range(.Cells(2, 3), .Cells(4, 5))
End With
עבור כל פריט במרכאות (לדוגמה, הטווח בעל השם "בדיקה"), באפשרותך גם להשתמש במשתנה שהערך שלו הוא מחרוזת טקסט. לדוגמה, במקום
ActiveWorkbook.Sheets("Sheet1").Activate
באפשרותך להשתמש
ActiveWorkbook.Sheets(myVar).Activate
כאשר הערך של myVar הוא "Sheet1".