-
שמתי את הקוד הזה.
Sub מאקרו1() Dim i As Long Application.ScreenUpdating = False For i = 1 To Sheets.Count Range("b7").Select מאקרו2 Selection.ClearContents Range("b7").Select Next i Application.ScreenUpdating = True End Sub
הבעיה שהוא עושה את הפעולה לפי מספר הגליונות, אך לא עובר לגליון הבא.
מה חסר כאן? -
@פלורידה
נסה את זהSub מאקרו1() Dim ws As Worksheet Application.ScreenUpdating = False For Each ws In ThisWorkbook.Sheets With ws .Range("b7").Select מאקרו2 Selection.ClearContents .Range("b7").Select End With Next Application.ScreenUpdating = True End Sub
-
@פלורידה אמר בvba | עזרה. לא עובר לגליון הבא:
זה נתקע בשורה 8
אתה לא יכול לבצע Select על טווח שאינו בגיליון הפעיל, אלא אם כן תציין לו זאת בפירוש ב Range, למשל:
Range("'Sheet100'!A:B")
אתה צריך קודם כל להפוך את הגליון הנוכחי שבכל איטרציה של הלולאה לפעיל (שורה 3):
For Each ws In ThisWorkbook.Sheets With ws .Activate .Range("b7").Select מאקרו2 Selection.ClearContents .Range("b7").Select End With Next
אבל אז לשורה 8 לכאורה לא תהיה שום השפעה (לא ברור לי מה התפקיד שלה)
-
@odeddvir אמר בvba | עזרה. לא עובר לגליון הבא:
אבל אז לשורה 8 לכאורה לא תהיה שום השפעה (לא ברור לי מה התפקיד שלה)
אם אתה עדיין תוהה, אז אתה צודק, רשמתי תא לא נכון.
רק שאלה להבנה. אשמח אם מישהו יואיל בטובו להסביר לי
מה ההבדל באופן הפעולה בין מה מה שניסיתי להשתמש
Dim i As Long For i = 1 To Sheets.Count
למה ש @מנחם הביא?
Dim ws As Worksheet For Each ws In ThisWorkbook.Sheets
-
@פלורידה אמר בvba | עזרה. לא עובר לגליון הבא:
מה ההבדל באופן הפעולה בין מה מה שניסיתי להשתמש
קודם כל מבחינת התוצאה, אין הבדל בין לולאה שרצה על מספרי הגליונות (הגרסא שלך) לבין לולאה שרצה על המופעים שלהם (הגרסא של מנחם).
למרות זאת, השיטה השנייה היא:- יותר מודרנית
- יותר יעילה
- יותר מובנת לקריאה.
הבעיה בקוד שלך היא שלא ציינת בכל איטרציה של הלולאה מאיזה גליון יילקח הטווח, כלומר לא התייחסת לגליון
Sheets(i)
, כך שבפועל נשארת תמיד על הגליון הפעיל בזמן הריצה.כדי שהקוד שלך יעבוד, הוא צריך היה להיות כתוב כך (שים לב לשורה 2):
For i = 1 To Sheets.Count Sheets(i).Activate Range("b7").Select מאקרו2 Selection.ClearContents Range("b7").Select Next i
-