-
אני זקוק לערוך קובץ אקסל מתוך קובץ אקסס
את הקוד שאני צריך לכתוב באקסל אני יודע ...
אבל אני רוצה להריץ אותו מתוך האקסס (אני חייב שהקוד יהיה בתוך הקובץ אקסס וזה לא טוב לי להפעיל דרך קוד vbs)
חיפשתי בגוגל וזה התוצאה שמצאתי אבל לא הבנתי מה אני אמור לעשות עם זה -
@chagold
לדוגמא נלך על הקוד הבאDim xl_app As Object, xlwkb As Object, xl_wks As Object Dim source_empl_col As Integer Set xl_app = CreateObject("Excel.Application") Set xl_wkb = xl_app.Workbooks.open(aName) Set xl_wks = xl_wkb.Sheets(source_cbo) source_empl_col = xl_wks.Range(empl_col_txt.text & 1).Column
תוכל להסביר לי מה הולך בכל שורה?
-
@אוריי אמר בעזרה | לערוך קובץ אקסל ע"י קוד vba מקובץ אקסס:
בערך..//משתני האובייקט, הקובץ הספציפי, והגליון Dim xl_app As Object, xlwkb As Object, xl_wks As Object Dim source_empl_col As Integer //פתיחתם. //בשורה השניה // צריך להחליף את aName //בקובץ הספציפי שלך. Set xl_app = CreateObject("Excel.Application") Set xl_wkb = xl_app.Workbooks.open(aName) Set xl_wks = xl_wkb.Sheets(source_cbo) source_empl_col = xl_wks.Range(empl_col_txt.text & 1).Column
-
@מנחם
הרבה תודה
זו באמת היתה הבעיה
תכלס התקדמתי עוד
וזה הקוד שיש ליOn Error GoTo doExcelAutomationErr Dim mySheet As Object Dim xlApp As Object Dim strName As String strName = aName Set xlApp = CreateObject("Excel.Application") Set mySheet = xlApp.Workbooks.open(aName).Sheets(1) mySheet.SaveAs strName xlApp.Visible = False Set mySheet = xlApp.Sheets("Export") With mySheet Range("a1").Value = "שם ספר" Range("b1").Value = "צבע" Range("c1").Value = "מדף" Range("d1").Value = "שם מחבר" Range("e1").Value = "סיווג" Range("f1").Value = "הערות" .Application.ActiveWorkbook.Save End With Set mySheet = Nothing Set xlApp = Nothing doExcelAutomationExit: Exit Sub doExcelAutomationErr: MsgBox Err.Description, vbOKOnly, Err.Source & ":" & Err.Number Resume doExcelAutomationExit
הקוד עובד מעולה חוץ מזה שיש לי 2 בעיות...
1. בשורה 11 הוא ככל הנראה פותח קובץ חדש והוא מבקש ממני להחליף אותו מה שאני רוצה לבטלעריכה: בסיעתא דשמיא הצלחתי להתגבר על הבעיה הזו.
2. הקוד הזה לא סוגר לי את קובץ האקסלמשתנה
aName
מכיל את הנתיב של הקובץ -
@אוריי
דבר ראשון אני מצרף לך ולאחרים קוד בסיסי מסודר
בשורה 13 יש לך את הסגירה של האקסל'הגדרת המשתנים עבור אקסל Dim xl_app As Object, xlwkb As Object, xl_wks As Object 'פתיחת אובייקט מסוג אקסל Set xl_app = CreateObject("Excel.Application") 'פתיחת הקובץ המבוקש Set xl_wkb = xl_app.Workbooks.Open("C:\Users\USER\Desktop\עותק של אנשי קשר.xlsx") 'פתיחת הגליון הרצוי Set xl_wks = xl_wkb.Sheets("חברות ביטוח ") 'A2 הצגת תוכן התא MsgBox = xl_wks.Range("A" & 2).Value 'סגירת האובייקט הנל מסוג אקסל xlApp.Quit
-
@אוריי אמר בעזרה | לערוך קובץ אקסל ע"י קוד vba מקובץ אקסס:
@מנחם
הרבה תודה
זו באמת היתה הבעיה
תכלס התקדמתי עוד
וזה הקוד שיש ליOn Error GoTo doExcelAutomationErr Dim mySheet As Object Dim xlApp As Object Dim strName As String strName = aName Set xlApp = CreateObject("Excel.Application") Set mySheet = xlApp.Workbooks.open(aName).Sheets(1) mySheet.SaveAs strName xlApp.Visible = False Set mySheet = xlApp.Sheets("Export") With mySheet Range("a1").Value = "שם ספר" Range("b1").Value = "צבע" Range("c1").Value = "מדף" Range("d1").Value = "שם מחבר" Range("e1").Value = "סיווג" Range("f1").Value = "הערות" .Application.ActiveWorkbook.Save End With Set mySheet = Nothing Set xlApp = Nothing doExcelAutomationExit: Exit Sub doExcelAutomationErr: MsgBox Err.Description, vbOKOnly, Err.Source & ":" & Err.Number Resume doExcelAutomationExit
הקוד עובד מעולה חוץ מזה שיש לי 2 בעיות...
1. בשורה 11 הוא ככל הנראה פותח קובץ חדש והוא מבקש ממני להחליף אותו מה שאני רוצה לבטלעריכה: בסיעתא דשמיא הצלחתי להתגבר על הבעיה הזו.
2. הקוד הזה לא סוגר לי את קובץ האקסלמשתנה
aName
מכיל את הנתיב של הקובץאני מקוה שהבנת ששורה 11 צריך למחוק
שים לב ששורה 9 ו 13 חוזרים על עצמם
אני הייתי משאיר רק את שורה 9
כשהסוגריים הראשון זה שם הקובץ והסוגריים השני זה או מספר הגליון כמו שרשום אצלך או "שם הגליון" עם מרכאות -
@מנחם
תאמת כרגע יש לי קצת כילאים
אבל אני מעדיף משהו ברור מאשר משהו שלא הצלחתי להבין אותו כלל יתכן וכאשר אני יבין אני ישתמש בקוד הקודם
תכלס זה הקוד המלא'הגדרת המשתנים עבור אקסל Dim xl_app As Object, xlwkb As Object, xl_wks As Object 'פתיחת אובייקט מסוג אקסל Set xl_app = CreateObject("Excel.Application") 'פתיחת הקובץ המבוקש Set xl_wkb = xl_app.Workbooks.Open(aNeme) 'פתיחת הגליון הרצוי Set xl_wks = xl_wkb.Sheets(Export) With xl_wks .Range("a1").Value = "שם ספר" .Range("b1").Value = "צבע" .Range("c1").Value = "מדף" .Range("d1").Value = "שם מחבר" .Range("e1").Value = "סיווג" .Range("f1").Value = "הערות" .Application.ActiveWorkbook.Save End With 'סגירת האובייקט הנל מסוג אקסל xlApp.Quit
דרך אגב משום מה האקסס קפא לי לאחר הריצה ועד עכשיו הוא לא רוצה להפשיר
ואני לא רוצה לסגור אותו בכח כי יש לי שם דברים שלא שמרתי