כיצד להעתיק שורה ב- VBA של Excel

השימוש ב- VBA לתכנת Excel אינו פופולרי כמו שהיה פעם. עם זאת, ישנם עדיין המון מתכנתים שמעדיפים זאת כאשר עובדים עם Excel. אם אתה אחד מאותם אנשים, המאמר הזה הוא בשבילך.

העתקת שורה באקסל VBA הוא מסוג הדברים ש- VBA של Excel הוא באמת שימושי עבורם. לדוגמה, ייתכן שתרצה שיהיה קובץ אחד מכל התקבולים שלך עם תאריך, חשבון, קטגוריה, ספק, מוצר / שירות ועלות נכנסו לקו אחד בכל פעם, כפי שהם מתרחשים - מקרה של ניהול חשבונות מתפתח ולא חשבונאות סטטית. לשם כך עליכם להיות מסוגלים להעתיק שורה מגליון עבודה אחד לאחר.

תוכנית מדגם VBA של Excel המעתיקה שורה מגליון עבודה אחד למשנהו - באמצעות שלוש עמודות בלבד לצורך הפשטות - מכילה:

  • עמודה אלפא עבור טקסט
  • עמודה מספרית - נוצר סכום אוטומטי בגליון העבודה של היעד
  • עמודת תאריך - התאריך והשעה הנוכחיים ממולאים אוטומטית

שיקולים לכתיבת קוד VBA של Excel

כדי להפעיל אירוע המעתיק את השורה, עבור עם התקן - פקד טופס כפתור. ב- Excel, לחץ על הכנס בכרטיסייה מפתח. לאחר מכן, בחר בפקד טופס הכפתור וצייר את הכפתור היכן שאתה רוצה. Excel מציג אוטומטית דו-שיח כדי לתת לך אפשרות לבחור א מאקרו מופעלת על ידי אירוע הלחיצה של הכפתור או ליצירת אירוע חדש.

instagram viewer

ישנן מספר דרכים למצוא את השורה האחרונה בגליון העבודה של היעד כך שהתוכנית תוכל להעתיק שורה בתחתית. דוגמה זו בוחרת לשמור על מספר השורה האחרונה בגליון. כדי לשמור על מספר השורה האחרונה, עליך לאחסן את המספר הזה איפשהו. זו עשויה להיות בעיה מכיוון שהמשתמש עשוי לשנות או למחוק את המספר. כדי לעקוף זאת, מקם אותו בתא ישירות מתחת ללחצן הטופס. ככה, זה לא נגיש למשתמש. (הדבר הקל ביותר לעשות זה להזין ערך בתא ואז להזיז את הכפתור מעליו.)

קוד להעתקת שורה באמצעות Excel VBA

Sub Add_The_Line () עמעום הנוכחי שורה כגיליונות שלמים ("גיליון 1"). בחר currentRow = טווח ("C2"). שורות ערך (7). בחר בחירה. העתק גיליונות ("גיליון 2") בחר שורות (זרם שורה). בחר ActiveSheet. הדבק את Dim theDate כתאריך theDate = Now () תאים (currentRow, 4) .Value = CStr (theDate) תאים (currentRow + 1, 3). הפעל Dim rTotalCell כטווח הגדר rTotalCell = _ גיליונות ("גיליון 2"). תאים ( שורות. ספירה, "C". סיום (xlUp). אופסט (1, 0) rTotalCell = גיליון עבודה. סכום _ (טווח ("C7", rTotalCell. אופסט (-1, 0))) גיליונות ("גיליון 1"). טווח ("C2"). ערך = זרם שורה + תת סיום 1 

קוד זה משתמש ב- xlUp, "מספר קסם", או יותר טכנית קבוע שמונה, המוכר בשיטת הסיום. אופסט (1,0) פשוט עובר בשורה אחת באותה עמודה, כך שהאפקט נטו הוא לבחור את התא האחרון בעמודה C.

במילים, ההצהרה אומרת:

  • עבור לתא האחרון בעמודה C (שווה ערך לסוף + חץ למטה).
  • לאחר מכן חזור לתא האחרון שלא נעשה בו שימוש (שווה ערך לחץ End + Up).
  • ואז לעלות תא אחד נוסף.

ההצהרה האחרונה מעדכנת את מיקום השורה האחרונה.

VBA ככל הנראה קשה יותר מ- VB.NET מכיוון שעליך להכיר גם אובייקטים VB וגם של VBA באקסל. השימוש ב- xlUP הוא דוגמה טובה לסוג הידע המתמחה שהוא קריטי ליכולת לכתוב מאקרו VBA מבלי לחפש שלושה דברים שונים עבור כל הצהרה שאתה מקודד. מיקרוסופט התקדמה מאוד בשדרוג עורך Visual Studio כדי לעזור לך להבין את התחביר הנכון, אך עורך ה- VBA לא השתנה הרבה.

instagram story viewer