همانطور که کاربرگ ها را ویرایش می کنید، ممکن است متوجه شوید که برخی از کارهای شما بر اساس کارهایی است که قبلا انجام داده اید. به عنوان مثال، ممکن است یک ردیف از داده هایی داشته باشید که در جلسه قبلی اکسل وارد کرده اید. در این جلسه باید آن ردیف از داده ها را کپی کنید و از آن به عنوان پایه داده های جدید خود استفاده کنید، البته با کمی تغییرات.
در چنین شرایطی، خوب است که یک راه سریع برای وارد کردن یک ردیف خالی بعد از ردیف فعلی و کپی کردن داده های ردیف فعلی در ردیف خالی جدید داشته باشید. هیچ دستور ذاتی در اکسل برای انجام این کار وجود ندارد، اما یک ماکرو می تواند این کار را خیلی راحت انجام دهد. به مثال زیر توجه کنید:
Sub InsertCopyRow1()
ActiveCell.EntireRow.Select
Selection.Copy
Selection.Insert Shift:=xlDown
End Sub
برای استفاده از ماکرو، تنها کاری که باید انجام دهید این است که یک سلول در هر ردیف را انتخاب کنید. هنگامی که ماکرو اجرا می شود، یک نسخه تکراری از ردیف فعلی درست زیر ردیفی که در آن قرار دارید درج می شود.
تنها مشکل این راه حل این است که رابط اکسل را کمی "به هم ریخته" می گذارد (به دلیل عدم وجود کلمه بهتر). پس از تکمیل، یک ردیف کامل همچنان انتخاب می شود و ردیف جدید دارای علامت "مورچه های راهپیمایی" در اطراف خود است.
این مشکل را می توان با قرار دادن دستورات برای جمع کردن انتخاب و انتقال آن به مکان مورد نظر برطرف کرد. راه دیگر این است که به سادگی از یک ماکرو متفاوت استفاده کنید که به دستورات مختلف VBA متکی است. ماکرو زیر نیز یک ردیف را وارد و کپی می کند، اما سلولی را که انتخاب کرده اید فعال می گذارد:
Sub InsertCopyRow2()
ActiveCell.Offset(1, 0).EntireRow.Insert
ActiveCell.EntireRow.Copy ActiveCell.Offset(1, 0).EntireRow
End Sub