Excel 2010'daki CTRL + D değerleri ve biçimlendirmeleri doldurur, ancak yalnızca değerleri / formülleri doldurmasını istiyorum


5

Excel 2007 veya 2010'da CTRL + D tuşlarına bastığınızda (ve muhtemelen eski sürümlerde), üstündeki hücrenin tam bir kopyasını çıkarır (elbette hücre referanslarını değiştirme). Bunu yaparken, yazı tipi biçimlendirme, doldurma ve hatta kenarlıklar (ugh) gibi diğer her şeyi kopyalar. Değeri / forumulayı kopyalayıp şu anki hücrenin biçimlendirmesini miras alabilirsem, bu harika olurdu.

2014/08/01 Güncellemesi

Bu harika makro ile geldim. Ancak, bir makro kullanmanın olumsuz tarafı, geri alma yeteneğini kaybetmenizdir. Bir geri alma makrosu oluşturmadan geri alma işlevselliğini bir makroyla uygulamanın bir yolu olduğunu biliyorum . Bunu daha önce Excel'de yaptım. Excel'e bir şekilde çalışma kitabının durumunu korumasını, böylece geri almanın gerçekte geri dönmesini sağlayacak bir yol var. Yine de bu, muhtemelen göndermeyi bırakacağım bir soru.

Alt CtrlD ()

Dim R Menzili Olarak

Set r = Seçim

Uygulama Birimi (r, r.Offset (-1, 0)).

Son Alt

Kimse buna daha doğal bir yaklaşım bilmiyorsa, o zaman cevap veren işareti alır.

Yanıtlar:


2

Yalnızca formülleri ve değerleri kopyalayarak, klavye kısayolunu kullanarak formatlamayı geride bırakabilirsiniz Ctrl- '- bu Ctrl tuşu ve tek alıntı.

Veya doldurma tutamacını aşağı sürüklemek için kullanabilirsiniz ve ardından "Biçimlendirmeden Doldurma" ile açılan Otomatik Doldurma seçeneklerini seçebilirsiniz.

görüntü tanımını buraya girin


1
Maalesef, CTRL + 'hücre başvurularını değiştirmiyor gibi görünüyor (soruma sorumu). Yerine değiştirme =A1+A2olması A2+A3, bu kopyalar formül kelimesi kelimesine. Ayrıca, doldurma tutamacını fareyle aşağı sürüklemek, klavye kısayolunun amacını yitirir. CTRL + [ne olursa olsun] tuşuna basabilmek ve CTRL + D'nin biçimlendirmeyi kopyalamadan önce yaptığı her şeyi yapmasını istiyorum.
oscilatingcretin

Ctrl + ' sadece tek bir hücre için çalışıyor gibi görünüyor. Ayrıca, değerin, seçimin üzerindeki ilk vurgulanmamış hücreden kopyalandığını unutmayın.
Drew Chapin

1

Sadece sırayla aşağıdaki tuşlara basarak klavyeden bu eşdeğer yapabilirsiniz çıkıyor: Alt, H, V, O, istediğiniz formülü kopyaladıktan sonra.

Biraz hantal ama temelde sadece Ctrl+ gibi kullanabilirsiniz D.

Bu işe yarıyor, çünkü temelde istediğin şey olduğunu düşündüğüm "Formülleri ve Sayı Biçimlerini Yapıştır" dır. Kenarlıklar ve yazı tipi stilleri bozulmaz.

Bunu şeritteki düğmeye koymanın ve kendi kısayolunu atamanın bir yolu olabilir.


Fikir iyidir, ancak başka bir cevaplayıcı, herhangi bir biçimlendirmeyi kopyalamayan yapıştırma formüllerini içeren benzer bir çözüm bulmuştur. Bunun bir başka dezavantajı, daha önce panoya kopyalanmış olanı kaybettiğiniz. CTRL + D kısayoluyla yapmak zorunda olmadığınız, önce yukarıdaki satırı vurgulamak ve sonra da tuş vuruşlarını kopyalamak zorunda kalmak da sakıncalıdır.
oscilatingcretin

@oscilatingcretin Gerçekten de mükemmel değil. Ancak, kopya numarası biçimlendirme grev değildir: CTRL + D aynı şeyi yapar.
Ben S.

0

Şeridinde: Görünüm sekmesine gidin -> unhide -> personal.xlsb -> Tamam -> yeni makro kaydet -> İletişim kutusunda: ad: "pasteVvalue" -> kısayol "crtl + D" -> "kişisel makro klasörü" nde kayıt -> ok Şeritten herhangi bir rastgele komut kullanın -> kaydı durdur -> makroyu görüntüle: "pasteValue" -> Sub pasteValue () ile satır arasındaki tüm vba kodlarını silin Son alt , aşağıdakini ekleyin -> kaydet

 Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False

Bundan sonra crtl + d, bilgisayarınızda kullandığınız tüm Excel dosyalarında istediğiniz şekilde davranır (değeri veya referansları değiştiren formülü kopyala).


Makrodaki metni gerçekten kopyalamayı unuttun. Sen de xlPasteValuesyerine kullandın xlPasteFormulas. Sorumu kullanarak fikrimi bir çözümle güncelledim. Başka hiç kimse bunu başarmak için daha doğal bir yöntem önermezse, cevabı alırsınız.
oscilatingcretin

Aslında, bekle, bunu kullanamam. Bir hücreyi kopyalamanın panoda sakladığım her şeyi patlatacağını fark ettim, bu yüzden işe yaramayacak.
oscilatingcretin

0

Bu makro, kodunuzdan esinlenerek teylyn'in cevabının (biçimlendirme olmadan otomatik doldurma) işlevselliğini yakalar :

Sub Extend_Content_From_Above()
    Dim above As Range

    For Each cur In Selection
        Set above = cur.Offset(-1, 0)
        above.AutoFill Destination:=Range(above, cur), Type:=xlFillValues
    Next cur
 End Sub

Excel'in yerel işlemesini gizlice yaptığından, açıkça çok hücreli bir seçimi işlediğini unutmayın.


Bu garip davranış sergiliyor görünmektedir. Make A1= 3ve B1= =A1. Şimdi A2: B2 aralığını seçin ve makronuzu çalıştırın. B sütununun hücre referansını ayarlarken A sütunundaki bir seriyi doldurmaya çalışır. Ancak, makronuzu yalnızca B2 hücresinde çalıştırırsanız, değeri kopyalar.
oscilatingcretin

Ah, Excel 2013'te de aynı şey var. Sorunuzu, bunu yapmakla ilgilendiğinizden bahsetmediğinden, çok hücreli bir seçimde test etmeyi düşünmedim. Teselli olacaksa, teylyn'in fare temelli cevabı aynı şekilde davranır. Ama iyi haber, düzelttim; düzeltilmiş cevabı gör.
Scott

Nitpick yapmaya çalışmıyorum, ama çözümün OP'ümden ne yapmıyor Application.Union(above, above.Offset(-1, 0)).FillDown?
oscilatingcretin
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.