VBA'da oldukça yeniyim ve aşağıdaki kod snippet'inde tek bir sorunla karşılaştım. Hedefim, bir kullanıcı verileri manuel olarak bir tabloya yapıştırdığında satır eklemektir. Kullanıcı, tablonun bir bölümünü el ile kopyalar (A1'den C25'e kadar diyelim. D ve E'ye dokunmadan bırakılır) ve A26'ya elle yapıştırılırken satırlar eklenir. Bu şekilde, tablo, verileri düzgün bir şekilde sığdırmak için genişler (çünkü tabloda daha fazla içerik vardır).Birden çok sütuna yapışmayı nasıl önleyebilirim?
Şimdi, aşağıda gösterilen kod sorta çalışıyor, tek sorun şu ki (A'dan C'ye kadar) sütunlardaki yapıştırılan veriler tüm sütunlarda tekrarlanıyor (D'den F'ye, G'den I'ye, vs ..)
nasıl komut çubuğunun geri alma kontrolü bu çünkü kullanıyorum
' When cells are pasted, insert # of rows to paste in
Dim lastAction As String
' If a Paste action was the last event in the Undo list
lastAction = Application.CommandBars("Standard").Controls("&Undo").List(1)
If Left(lastAction, 5) = "Paste" Then
' Get the amount that was pasted (table didn't expand)
numOfRows = Selection.Rows.Count
' Undo the paste, but keep what is in the clipboard
Application.Undo
' Insert a row
ActiveCell.offset(0).EntireRow.Insert
End If
nedeni ("sonsuza kadar" devam ve itibaren) Ben eklenen satırlarda benim diğer sütunları üzerine yazmasını bu yapıştırılan verileri engellerim kodun elle yapıştırma etkinliğinde çalışması gerekir.
bu, Excel'de olduğu gibi tanımlanan bir Tablo'dur? Ya da sadece bir veri tablosu? –
Sadece bir veri tablosu. Sadece veri içeren hücreler - özel bir şey değil. –
Bir çözüm üzerinde çalışıyorum - bu çalışma sayfası değişikliği olayında mı? –