עבור לתוכן

לולאת FOR פשוטה ב VB תחת אקסל לא עובדת, בעיה פשוטה, מישהו עם גישה יפתור מהר.

Featured Replies

פורסם

שלום,

אני מנסה להריץ את:

Function Test(n) As Long

For j = 1 To 26

Range("B" & j).Value = j

Next j

Test = 777

End Function

אבל לא מצליח.

תודה מראש

פורסם

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

דבר שני מה בדיוק אתה מנסה לעשות?

פורסם

ה- VB שלי לא משהו, אבל לא חסר שם איזה End For או משהו כזה?

פורסם

ה-NEXT משמש כ-END.

אם ה-VB שלך לא משהו, למה אתה עונה?

פורסם

אני יודע? חשבתי שזה יכול לעזור.

דווקא בדיוק בסוף שבוע האחרון יצא לי לא מעט לכתוב macros לאקסל ב- VB כדי להכין גרפים.

איכס.

פורסם

אני יודע? חשבתי שזה יכול לעזור.

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

אני חושב שאתה יודע על מה אני מדבר ;)

בתור אחד שעבד המון עם אקסל+VB במסגרת בית הספר, אני חייב להגיד שזה כלי ממש חזק אם יודעים להשתמש בו.(ולא, אני לא מדבר על הכנת גראפים אוטומטים)

פורסם

ממה שאני מבין את מנסה למלא עמודה במספרים מ- 1 עד 26

לא משנה שאפשר לעשות את זה עם כלים מובנים של אקסל בלי לכתוב אף שורת קוד אחת (edit=>fill series)

בכל אופן את שולח לפונקציה שלך פרמטר n שאתה לא עושה איתו כלום

האובייקט Range לא יכול לחיות לבד תלוש בלי "אבא" כאשר את רוצה לגשת לתא מסויים באקסל יש היררכיה מאוד ברורה:

חוברת העבודה=>גליון=>כתובת התא בגיליון

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

Excel.ActiveSheet.Range(I1) = "Hello World"

או אם יש לך כמה חוברות עבודה פתוחות בו זמנית ואתה רוצה לגשת לראשונה ובה לגיליון הראשון

dim Wb1 as Excel.Workbook
dim Ws1 as Excel.Worksheet

set wb1 = Excel.Workbooks(1)
set Ws1 = Wb1.Worksheets(1)
Ws1.Range("I5") = "Hello World"

פורסם
  • מחבר

תודה רבה.

אני מכיר VB אבל אקסל שבר לי את השיניים - תודה על ההסבר.

הסיבה שהפונקציה לא משתמשת בקלט (n) היא כיוון שאני רוצה שהתוכנית תרוץ כתוצאה משינוי בתא והתא הזה יחליף את n.

בנוסף, מתי צריך להוסיף value אחרי ה range?

פורסם

בנוסף, מתי צריך להוסיף value אחרי ה range?

לא צריך ל- VB יש הגדרה של מהו מאפיין ברירת מחדל כאשר לא כותבים את אותו מאפיין , במקרה של Range , Value הוא מאפיין ברירת מחדל

אני אישית לא כל כך אוהב את הכתיב המרומז הזה אני נוהג לכתוב בכתיב מלא, אבל זה לא הכרחי

פורסם

אגב, מה ההבדל במקרה הזה בין range ל-cells?

אני פשוט תמיד משתמש ב-cells כשמדובר בתא ספציפי

פורסם

אגב, מה ההבדל במקרה הזה בין range ל-cells?

אני פשוט תמיד משתמש ב-cells כשמדובר בתא ספציפי

זה צורת גישה שונה , Rnage כאשר אתה יותר כתובת מדוייקת של תא

אבל Range יכול להיות גם מטריצה של תאים למשל

Ws1.Range("A1:B2")

במקרה כזה ה- Range מכסה 4 תאים (2 עמודות על 2 שורות)

ואז ה- Cells שימושי כאשר רוצים לגשת לתאים בצורה יחסית ל- Range

למשל

Range("A1:B2").Cells(2,1)

יצביע על תא A2

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים