התקשרו אלינו: 052-2928949
ימים א'-ה' בין השעות 9:00-17:00

התקשרו אלינו: 052-2928949 א-ה 9:00-17:00

העתקה והדבקה ב VBA

VBA Tip

העתקה והדבקה ב VBA

VBA Tip

העתקה והדבקה ב VBA

העתקה והדבקה הן מהפעולות הנפוצות באקסל.
איך עושים אותן ב VBA?
פעולת ההעתקה נעשית על ידי שימוש בפקודה copy


Range("a3").Copy

פעולת ההדבקה נעשית על ידי שימוש בפקודה ActiveSheet.Paste

Range("a3").Copy
Range("a4").Select
ActiveSheet.Paste
Application.CutCopyMode = False

הקוד שלעיל העתיק את תוכן התא A3 והדביק אותו לתא A4.
הפקודה Application.CutCopyMode = False מבטלת את מצב ההעתקה (הקווקוו המקיף) של תא A3.

טיפ:
תוכלו להשתמש בקיצור הבא כדי להדביק את הערך בטווח המבוקש (במקרה זה, בתא A4):

Range("a3").Copy Range("a4")

לחילופין, תוכלו להשתמש בקוד:

Range("a4").Value = Range("a3").Value

שימו לב,
למרות ששני הקודים שלעיל נותנים תוצאה זהה, דרך פעולתם שונה לחלוטין:
בקוד הראשון העתקנו את הערך שנמצא בתא A3 והדבקנו אותו בתא A4.
בקוד השני, לעומת זאת, הזנו לתא A4 את הערך שנמצא בתא A3 באמצעות פעולת שיוויון.

 

הדבקה מיוחדת

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

Range("A1").Copy
Range("B1").PasteSpecial Paste:=xlPasteValues

בדוגמה שלעיל, בחרתי בהדבקת ערכים (xlPasteValues).
אם תקליטו את פעולה ההדבקה המיוחדת, תקבלו את הקוד הבא:

Range("B1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks :=False, Transpose:=False

שימו לב שיש כאן שלוש אפשרויות נוספות, כפי שמופיעים בחלונית ההדבקה המיוחדת באקסל:

הדבקה מיוחדת Paste Special

  1. Paste – מציין את שיטת ההדבקה. בדוגמה שלעיל: ביקשנו להדביק כערכים,
    אולם ניתן לבחור בכל אחת מהאפשריות שקיימות בחלונית ההדבקה המיוחדת כגון נוסחאות, עיצובים ועוד
    (אני ממליצה לכם להקליט מאקרו כדי לבדוק מהו התחביר לשאר פקודות ההדבקה (נוסחאות, עיצובים וכו').
  2. Operation – מאפשר להוסיף, להחסיר, להכפיל או לחלק ערך מועתק לטווח נבחר.
  3. Skip Blanks – אם קיימים תאים ריקים בטווח שהעתקנו, ניתן לבחור שלא להדביקם ביעד.
  4. Transpose – מאפשר לבצע חילוף בין עמודות לשורות.

וכמה מילים על הסימן :=

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

Selection.PasteSpecial xlPasteValues, xlNone, False, False

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

Selection.PasteSpecial , , , True

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

Selection.PasteSpecial Transpose:=True

 

 

 

דילוג לתוכן