דילוג לתוכן

אקסל

408 נושאים 3.4k פוסטים

קטגוריות משנה


  • 11 נושאים
    65 פוסטים
    פראיריפ
    אז המאקרו הפשוט ביותר זה הקלטת מאקרו שראינו במדריך הקודם היתרונות של זה זה שזה לא דורש ידע רחב פשוט מקליטים ומסיימים החסרון בזה זה שזה דורש יצירה ממש של מה שאנחנו רוצים להקליט ולא רק פקודה עכשיו נלמד על דרך הרבה יותר קלה שבאמת תחסוך לכם זמן וכוח מבוא לVisual Basic ויז'ואל בייסק זה בעצם המקום שבמקום לכתוב בעצמכם את האוטומציה אתם פשוט נותנים לאוטומציה לעשות את עצמה כלומר: אני לא צריך לעשות בעצמי את האוטומציה אלא פשוט להזין את הקוד של הפעולה שלה הרי גם בהקלטת אוטמציה המחשב למעשה מתרגם את זה לקודים אז למה שבמקום לכתוב ואז המחשב מתרגם לקוד ואז מבצע פשוט נכתוב למחשב מראש את הקוד? לזה נולד הרעיון של Visual Basic-לכתוב ישר את הקוד בלי הקדמות אז ישר לעניין! הכרת Visual Basic וכליו [image: 1769291620543-9a2e3974-1ec4-4407-bd1c-2ddb0dea638d-image.png] זה ויז'ואל בייסיק נכנס אליו יפתח מסך כזה [image: 1769291672078-ab20851f-fc1c-4353-90d1-452fe535f488-image.png] יש לנו שם הרבה אופציות אבל אנחנו נתמקד בפקודות עצמם ותבנית המאקרו כתיבת והרצת קוד מאקרו נלך לפינה הימנית העליונה לInsert ונבחר בModule [image: 1769291721548-ae9f2aac-3550-4136-b5ce-71e7879278f5-image.png] יפתח לנו מסך כזה [image: 1769291741193-3e0316e1-5c3e-4492-84bf-ea1d4db6bf1f-image.png] זה בעצם הממשק של כתיבת הקוד שלנו כללי יסוד: כל מאקרו מתחיל בSub ולאחריו השם שאנחנו בוחרים לו ולסיום End Sub לדוגמא Sub MyFirstCode() End Sub ורוב המאקרו בנויים בסדר הזה מיקום-פעולה-ערך נקח לדוגמא מאקרו כזה Sub MyFirstCode() בחרנו שם , עכשיו לפקודה Range("A1").Value = "אוטומציה זה החיים" Range("A1").Interior.Color = vbYellow MsgBox "הפעולה הושלמה בהצלחה!" End Sub מה כתוב כאן? קודם כל בחרנו מיקום Range("A1") – אמרנו לאקסל לגשת לתא A1. אח"כ בחרנו פעולה = "אוטומציה זה החיים" ואח"כ שינינו את הערך של התא .Value – אמרנו לו לשנות את הערך (התוכן) שלו. .Interior.Color – אמרנו לו לגשת לצבע הפנימי שלו ולשנות אותו לצהוב (vbYellow). MsgBox – הקפצנו הודעה למסך בסיום. "הפעולה הושלמה בהצלחה" כך זה אמור להראות בממשק הקוד [image: 1769292419284-16640819-9200-4696-8e17-8aae71ba3428-image.png] נריץ את המאקרו בלחיצה על החץ למעלה [image: 1769292452492-6daeb8b4-f1c0-4a7b-b943-d9429ff89774-image.png] יפתח לנו מסך כזה [image: 1769292478552-c1971bb2-26c0-42fc-9f2c-3c1ff1af3dab-image.png] נלחץ על "RUN" וקיבלנו את התוצאה הזאת [image: 1769292551597-d8de57bc-1f02-423a-bce2-3cdda827ba44-image.png] כמובן שעכשיו אנחנו יכולים לקחת את הפקודה הזאת ולשפר אותה ולהוסיף את התוכן הערך והמיקום מכאן השמיים הם הגבול אבל זה המבנה הבסיסי של הפקודה אם אתם רוצים פקודה מסוימת לביצוע טקסט בצבע כזה או אחר ואתם לא יכולים לכתוב בעצמכם אתם יכולים לפנות לAI החביב עליכם שיפתור לכם את הבעיה ביתר קלות בל"נ אם יהיה עוד מדריך נדבר על לולאות וכו'
  • 354 נושאים
    3k פוסטים
    י
    @YAHBDK תנסה ב-Alt השמאלי!!
  • הדרכה ועזרה לשפה המתה VBA

    43 455
    43 נושאים
    455 פוסטים
    ב
    Spoiler הסיבה ללולאה האינסופית באופיס 365 היא האופן שבו הלולאה For Each word In doc.Words עובדת בשילוב עם עריכת הטקסט: כאשר משנים את word.Text, אוסף ה-Words במסמך מתעדכן בזמן אמת, מוחק את הרווח העוקב שהיה צמוד למספר, ומגדיר מחדש את הטווח כך שהמאקרו מזהה את המספר החדש שוב ושוב (או מאחד אותו עם המילה הבאה). בנוסף, במאקרו המקורי שלך הפונקציה השנייה (min_num) הכילה בטעות + 1 במקום - 1. כדי לפתור את הבעיה לגמרי, יש לעבור על המילים מהסוף להתחלה (לולאת For i = ... Step -1) או להשתמש בחיפוש מבוסס תווים כלליים (Wildcards), ולשמור על הרווח שאחרי המספר במידה והיה קיים. להלן הקוד המתוקן והמלא (כולל החלק שמוסיף רווח קשיח ^s לאחר המספרים כפי שהיה אצלך בקוד המקורי, ותיקון של פונקציית ההפחתה min_num):