-
@odeddvir אמר בכיצד לגבות ולשחזר טווחים מסויימים מחוברת אקסל?:
להלן הפונקציה החדשה להעתקת החוברת כולה לקובץ גיבוי:
Public Sub BackupTo(targetWorkbook As String) Application.DisplayAlerts = False ThisWorkbook.SaveAs targetWorkbook, xlOpenXMLWorkbookMacroEnabled Application.DisplayAlerts = True End Subלמעשה שיניתי מעט את הקוד.
Sub גיבוי() Application.DisplayAlerts = False ActiveWorkbook.Save BackupTo ActiveWorkbook.Path & "\גיבוי.xlsm" Workbooks.Open Filename:="\הדרן עלך.xlsm" ActiveWorkbook.Close True End Sub
כאשר בשורה 3 הוא שומר את הקובץ לפני שהוא עושה לו שמירה בשם, (מה שעלול היה לבטל את כל השינויים בקובץ המקורי)
בשורה 5 הוא "אמור" לפתוח מחדש את הקובץ הדרן עלך...
ובשורה 6 הוא "אמור" לסגור את הקובץ....
אך למרות שחשבתי את עצמי כבר גאון ב 'vba' עם ותק של חודש... שורה 5 ו 6 לא פועלים כמו שצריך...
בשורה 5 הוא לא מזהה את שם הקובץ
\הדרן עלך
בעוד אני התכוונתי לציין את הנתיב על ידי\
שייפתח באותו תיקייה...ובשורה 6 הוא גם בעייתי, כי הוא סוגר את הקובץ הפעיל, כלומר את הקובץ שפתחתי כעת, בעוד אני מעוניין שיסגור לי את קובץ "גיבוי"
-
@פלורידה אמר בכיצד לגבות ולשחזר טווחים מסויימים מחוברת אקסל?:
ובשורה 6 הוא גם בעייתי, כי הוא סוגר את הקובץ הפעיל, כלומר את הקובץ שפתחתי כעת, בעוד אני מעוניין שיסגור לי את קובץ "גיבוי"
לזה אני חושב שהפיתרון הוא
Workbooks("גיבוי.xlsm").Close True
-
@פלורידה לא צריך להסתבך.
יש פקודה לשמור עותק של החוברת בצורה שקטה. פשוט תחליף את שורה 3 בפונקציהBackupTo
כדלקמן:Public Sub BackupTo(targetWorkbook As String) Application.DisplayAlerts = False ThisWorkbook.SaveCopyAs targetWorkbook Application.DisplayAlerts = True End Sub
-
-
@odeddvir אמר בכיצד לגבות ולשחזר טווחים מסויימים מחוברת אקסל?:
Public Sub BackupTo(targetWorkbook As String) Application.DisplayAlerts = False ThisWorkbook.SaveCopyAs targetWorkbook Application.DisplayAlerts = True End Sub
ניתן לשמור בתבנית שונה מהמקור?
xlsx
משום שבצורה הנוכחית שנשמר עם המאקרו, זה יוצר בעיות מסוימות.
-
כעת גיליתי את הבעיה שלי:
אין אפשרות להשתמש ב
FileFormat
בעת שימוש בSaveCopyAs
יש שם באתר עשרות הצעות איך לפתור את זה (יותר נכון איך לעקוף את זה) רובם עוסקים באפשרות לשמור את הקובץ (
SaveCopyAs
) בתבניתxlsm
, ואח"כ לפתוח אותו ולשמור אותו מחדש (SaveAs
) בתבניתxslx
, וכדו'. מה שלא בדווקא פותר את הבעיה. -
@odeddvir אמר בכיצד לגבות ולשחזר טווחים מסויימים מחוברת אקסל?:
תוכל לפרט מה בדיוק הבעיה בזה?
צפיציפית:
אני יוצר שחזור אוטומטי.
האירוע שמפעיל אותו הוא פתיחת הגליון.הצורה שהוא מופעל:
בכל גליון יש תא שאחראי לדעת אם הגליון מגובה או לא. כלומר בעת סימון התא משתנה ללא מגובה
.
בעת שחזור, התא משתנה למגובה
.בהנחה שפתחתי את הקובץ
הדרן עלך
וסימנתי ולאחר מכן לחצתי על "גיבוי" נשמר לי בקובץגיבוי
המידע שהוא לא מגובה.בעת הפעלת הקובץ
גיבוי
(על ידי לחיצה על "שחזור" או על ידי הפיתרון הזה, שאוטומטית הוא ייפתח כדי להשתנות לxlsx
), הוא יבדוק אם הוא מגובה או לא, ויגלה שלא, ואז הוא ינסה לעשות שחזור מעצמו.מה יקרה אז? אני לא יודע...
באופן כללי:
מכיון שהבריכה שלי די קטנה, ושוחים שם הרבה דגים סומים וחסרי מזל, אני משתדל לפזר כמה שפחות כוסות חד פעמיות.
-