-
@פלורידה תשתמש במשתנים גלובליים.
צור מודול ובו תצהיר על משתנה גלובלי (ציבורי) שיכיל את חוברת הנתונים:Public DataWB As Workbook
כעת בפתיחת החוברת שלך, תריץ את הקוד הבא:
Set DataWB = GetObject("Hadran_Data.xlsx")
ולפני הסגירה תריץ:
DataWB.Close SaveChanges:=True
כי מסתמא תרצה לשמור את השינויים שביצעת בקובץ הדאטא.
בין לבין, תוכל לגשת לקובץ הדאטא מכל מקום בקוד על ידי האובייקט
DataWB
. -
@odeddvir
כל קובץ שפתחתי אותו פעם אחת על ידיGetObject
יותר לא נפתח לי כרגיל, כלומר הוא ירוץ (אני אראה קובץ מוסתר בשולחן העבודה,) אך אינו מוצג.ניסיתי להגדיר ככה:
DataWB.Visible = True
אך קיבלתי שגיאה: Object doesn't support this property or method
-
@odeddvir אמר בהתייעצות | בניית מסד נתונים לתכנת "הדרן עלך" | אקסל:
Application.Windows(1).Caption = "שמוליק"
אם אני מבין נכון, החלון הפעיל נחשב (1) וכן הלאה.
סביר להניח שכאשר אני פותח חלון על ידי vba הוא לא נחשב פעיל, ולכן הוא מקבל את הערך האחרון מבין החלונות הקיימיםבהתחשב בכך, צריך לחשב כמה חלונות פעילים, ולתת לחלון של המסד את הערך האחרון.
כאשר הוא יהפך לפעיל הוא יחזור להיות (1) וכל הקוד ישתבש? ואם נתתי לו שם, זה ישנה את העובדה הזו?
הפיתרון לתת כותרת, גם היא צריכה קודם לדעת את המיקום באינדקס
אני מרגיש שדיברתי יותר מידי... מה חסר לי בהבנה?
-
@odeddvir בוודאי יש לך גירסת אופיס 365
לי יש 2019הצורה שהכנסתי את זה היא כך:
Sub open1() Set DataWB = GetObject("C:\Desktop\Hadran_Data.xlsx") DataWB.Visible = True End Sub
וכך
Sub סגור() DataWB.Visible = True DataWB.Close SaveChanges:=True End Sub
בריצה בחלון המיידי מתקבלת השגיאה הבאה:
Run-time error '424':
Object required
-
@פלורידה אני בספק אם גרסת האופיס משנה כאן.
אני לא מבין מה אתה מנסה לעשות. לפי הקוד שצירפת, אתה רוצה להציג את חלון הדאטא מתוך התוכנה. אני הבנתי שלא.
אם כן, פשוט תפתח את החוברת כרגיל:Sub open1() Set DataWB = Workbooks.Open("C:\Desktop\Hadran_Data.xlsx") End Sub
ותו לא מידי.
-
@odeddvir אמר בהתייעצות | בניית מסד נתונים לתכנת "הדרן עלך" | אקסל:
לפי הקוד שצירפת, אתה רוצה להציג את חלון הדאטא מתוך התוכנה. אני הבנתי שלא.
הבנת נכון לגמרי.
הקוד שצירפתי היה רק בעבור הרצון לשחזר את החוברת אחרי שהיא לא עלתה. לכן נסיתי להשפיע עליה דרך הקוד. -