Excel VBA'da Satır Kopyalama

Excel'i programlamak için VBA kullanmak bir zamanlar olduğu kadar popüler değil. Bununla birlikte, Excel ile çalışırken hala tercih eden çok sayıda programcı var. Bu insanlardan biriyseniz, bu makale tam size göre.

Excel'de bir satır kopyalama VBA Excel VBA'nın gerçekten yararlı olduğu bir şeydir. Örneğin, tarih, hesap, kategori, sağlayıcı, tüm makbuzlarınızın bir dosyasına sahip olmak isteyebilirsiniz. ürün / hizmet ve maliyet gerçekleştikçe her seferinde bir satıra girildi; bunun yerine, gelişen muhasebe örneği statik muhasebe. Bunu yapmak için, bir satırı bir çalışma sayfasından diğerine kopyalayabilmeniz gerekir.

Basitlik için yalnızca üç sütun kullanarak bir satırı bir çalışma sayfasından diğerine kopyalayan örnek bir Excel VBA programı şunları içerir:

  • İçin bir alfa sütunu Metin
  • Sayısal bir sütun - hedef çalışma sayfasında otomatik bir toplam oluşturulur
  • Bir tarih sütunu - geçerli tarih ve saat otomatik olarak doldurulur

Excel VBA Kodu Yazarken Dikkat Edilmesi Gerekenler

Satırı kopyalayan bir olayı tetiklemek için standartla devam edin - bir Düğme form denetimi. Excel'de, Geliştirici sekmesinde Ekle'yi tıklatın. Ardından, Düğme formu denetimini seçin ve düğmeyi istediğiniz yere çizin. Excel otomatik olarak bir iletişim kutusu görüntüler.

instagram viewer
makro düğmenin tıklama etkinliği veya yeni bir tane oluşturmak için tetiklenir.

Hedef çalışma sayfasındaki son satırı bulmanın birkaç yolu vardır, böylece program en alttaki bir satırı kopyalayabilir. Bu örnek, çalışma sayfasındaki son satırın sayısını korumayı seçer. Son satırın numarasını korumak için, bu sayıyı bir yerde saklamanız gerekir. Kullanıcı bir numarayı değiştirebileceği veya silebileceği için bu bir sorun olabilir. Bu sorunu gidermek için, form düğmesinin hemen altındaki hücreye yerleştirin. Bu şekilde, kullanıcı erişemez. (Yapılacak en kolay şey, hücreye bir değer girmek ve ardından düğmeyi onun üzerine taşımaktır.)

Excel VBA Kullanarak Satır Kopyalama Kodu

Sub Add_The_Line () currentRow Tamsayı Sayfaları Olarak Dim ("Sheet1"). CurrentRow = Range ("C2") öğesini seçin. Değer Satırları (7). Sayfaları Kopyala ("Sayfa2"). Satırlar'ı (currentRow) seçin. ActiveSheet'i seçin. Tarihi Son Tarih Olarak Yapıştır theDate = Now () Hücreleri (currentRow, 4) .Değer = CStr (theDate) Hücreleri (currentRow + 1, 3). Satırlar. Say, "C"). End (xlUp) .Ofset (1, 0) rTotalCell = WorksheetFunction. Toplam _ (Aralık ("C7", rTotalCell). Ofset (-1, 0))) Sayfalar ("Sayfa1"). Aralık ("C2"). Değer = currentRow + 1 End Sub 

Bu kod, "sihirli sayı" veya daha çok teknik olarak numaralandırılmış sabit olan xlUp, End yöntemi tarafından tanınır. Ofset (1,0) sadece aynı sütunda bir satır yukarı hareket eder, böylece net etki C sütunundaki son hücreyi seçmektir.

Sözlerle ifade şöyle diyor:

  • C sütunundaki son hücreye gidin (Son + Aşağı Ok'a eşdeğer).
  • Ardından, kullanılmayan son hücreye geri dönün (End + Yukarı Ok'a eşdeğer).
  • Sonra bir hücre daha yukarı çık.

Son ifade, son satırın konumunu günceller.

Hem VB hem de Excel VBA nesnelerini bilmek zorunda olduğunuz için VBA muhtemelen VB.NET'ten daha zordur. XlUP kullanmak, kodladığınız her ifade için üç farklı şey aramadan VBA makroları yazabilmek için kritik olan özel bilgi türlerine iyi bir örnektir. Microsoft, doğru sözdizimini bulmanıza yardımcı olmak için Visual Studio düzenleyicisini yükseltme konusunda büyük ilerleme kaydetmiştir, ancak VBA düzenleyicisi çok fazla değişmemiştir.

instagram story viewer