הפעלת קוד vba באקסל דרך אקסס
-
@OdedDvir
עשיתי את הקוד הזהPrivate Sub פקודה0_Click() Dim xl As Excel.Application Set xl = CreateObject("Excel.Application") xl.Visible = True xl.Workbooks.Open "H:\לא להיכנס\מפת הספריות אקסל.xlsm", True, False xl.Run "ThisWorkbook.PrintLibrary1" Set xl = Nothing End Sub
שיניתי את ההפניה לקובץ בשורה 9 ואת השם של הקוד שבשורה 11
ומחזיר לי שגיאה כזו
שניראת אפי' לא קשורה להפניות אלא לשגיאה אחרת בקוד -
@OdedDvir
תודה
עכשיו עובד
אבל זו לא הייתה הבעיה לי היתה שגיאת הקלדה בשם הקוד והוא לא מצא את את מה להריץעוד שני שאלות בנידון הזה
- האם ישנה אפשרות להריץ את הקוד בלי לפתוח את האקסל (או לכל הפחות שלא יראו אותו).
- לגבי ההפניה של הקוד לעבר מיקום הקובץ יש לי בעיה קטנה כי לפעמים אני מעביר את הקובץ ממחשב למחשב ואני רוצה שהוא יעבוד רק מה שקורה הוא שאני צריך לשנות בתוך הקוד את ההפניה כעת יש לי קובץ של דטא שבו יש לי טבלאות מקושרות כעת אני רוצה לדעת האם במקום הקוד של ההפניה אני כותב לו שיחפש בתוך התקיה ששם הדטא נמצאת את קובץ אקסל בשם XXXXX כך בכל פעם שאני יעתיק את הקובץ למחשב אחר ברגע שאני יעדכן את מיקום הדטא יתעדכן גם מיקום הקובץ?
מקווה שהובנתי היטב..
-
@אוריי אמר בהפעלת קוד vba באקסל דרך אקסס:
האם ישנה אפשרות להריץ את הקוד בלי לפתוח את האקסל (או לכל הפחות שלא יראו אותו).
כן, תשנה את שורה 7 ל:
xl.Visible = False
או שפשוט תמחק אותה, כמדומני שברירת המחדל היא לא להציג את הקובץ
לגבי ההפניה של הקוד לעבר מיקום הקובץ יש לי בעיה קטנה כי לפעמים אני מעביר את הקובץ ממחשב למחשב ואני רוצה שהוא יעבוד רק מה שקורה הוא שאני צריך לשנות בתוך הקוד את ההפניה כעת יש לי קובץ של דטא שבו יש לי טבלאות מקושרות כעת אני רוצה לדעת האם במקום הקוד של ההפניה אני כותב לו שיחפש בתוך התקיה ששם הדטא נמצאת את קובץ אקסל בשם XXXXX כך בכל פעם שאני יעתיק את הקובץ למחשב אחר ברגע שאני יעדכן את מיקום הדטא יתעדכן גם מיקום הקובץ?
מקווה שהובנתי היטב..הבנתי, אפשר לעשות כך, ולקרוא את הערך מהטבלה על ידי DLookup. אבל אז תצטרך לעדכן בכל מחשב את הטבלה...
אני מציע לך לשים את האקסל באותה תיקיה כמו קובץ האקסס ולהשתמש באובייקט CurrentProject כדי לאחזר את מיקום הקובץ של האקסס, ואז לבצע קריאה כך (במקום שורה 9):
Dim xlFilePath As String xlFilePath = CurrentProject.Path & "\" & "שם הקובץ שלך.xlsm" xl.Workbooks.Open xlFilePath, True, False
-
@OdedDvir אמר בהפעלת קוד vba באקסל דרך אקסס:
אני מציע לך לשים את האקסל באותה תיקיה כמו קובץ האקסס ולהשתמש באובייקט CurrentProject כדי לאחזר את מיקום הקובץ של האקסס, ואז לבצע קריאה כך (במקום שורה 9):
לזה בדיוק התכוונתי
אבל צריך לשים לב שבאקסל מותאם לvba הסיומת היא .xlsm ולא .xlsx כך שבמצב כזה הוא לא יקרא אותו
מוזר מאד שבהתחלה זה עבד לי גם כאשר הסיומת הייתה .xlsx אבל כאשר השתמשתי עם הקוד הזה הוא דורש דווקא סיומת של .xlsm -
@אוריי אמר בהפעלת קוד vba באקסל דרך אקסס:
אבל צריך לשים לב שבאקסל מותאם לvba הסיומת היא .xlsm ולא .xlsx כך שבמצב כזה הוא לא יקרא אותו
נכון, אני אערוך את המקור למעלה
מוזר מאד שבהתחלה זה עבד לי גם כאשר הסיומת הייתה .xlsx אבל כאשר השתמשתי עם הקוד הזה הוא דורש דווקא סיומת של .xlsm
גם אצלך (בצילום מסך למעלה) כתוב .xlsm