Excel'in “Auto Fit Row Height” özelliği aslında satır yüksekliğine otomatik olarak nasıl sığınır?


88

Her nesil Excel için hatırlayabildiğim (şu an kullandığım 2010 da dahil), Excel'in "Otomatik Boyut Satırı" özellikleri, hücre sarılmış metin içerdiğinde bazen bir satırın otomatik olarak boyutlandırılmasında başarısız oluyor. Düzgün çalıştığında, tüm metin ortaya çıkar ve son satırın altında ek boşluk kalmaz. Başarısız olduğunda, metnin altına fazladan boşluk ekler. Sorunları daha kötü hale getirmek için, gördüğünüz şey her zaman elde ettiğiniz şey değildir, yani ekranda tamam görünen metin yazdırıldığında kesilir. Ayrıca yakınlaştırılıp uzaklaştırılmadığına veya gerçek boyutuna bağlı olarak farklı boyutlandırma elde edersiniz.

Basit test durumu:

Neden A1 hücresindeki metinden sonra bir satır boşluk var ama A2'de değil?

(Çoğaltmak: A sütununun genişliğini 17.14 (125 piksel) olarak ayarlayın, metin sarın ve hücre hizalamasının üst kısmını ayarlayın.)

(Her iki satıra da Otomatik Sığdır Satır Yüksekliği uyguladığımı iki kez kontrol ettim. Yakınlaştırma düzeyi% 100'dür.)

Otomatik Sığdırma ilk satırda başarısız olur, ikinci sırada başarılı olur

Bunun için sıra yüksekliğini manuel olarak ayarlamaya başvurmadan bilinen herhangi bir çözüm var mı (ki bu bir avuçtan daha fazlası için pratik değildir)?


Birisinin sorumu tekrarlamak istemesi durumunda, A sütununun genişliği 17.15'tir (125 piksel).
Şubat'ta devuxer

1
Hata yazı tipi ve yazı tipi boyutuna bağlı görünüyor
Raystafarian

1
@ Raystafarian, Wrap Text açıkken çalışmıyor gibi görünüyor.
devuxer

1
Bir sütunu genişleten sütunları otomatik olarak takmayı ve sonra satırları otomatik olarak takmayı denedim. Bu 73'ten 64 sayfaya indirildi, ancak çoğu satırın altında hala çok fazla boş satır var. Satırlar üstte hizalı. Satırların boyutunu el ile değiştirmek, doküman üzerinde çalışırken önizlemede veya baskıda görünmüyor.

1
Evet, çok sinir bozucu! Ayrıca bunu en azından Excel 2007'de görmüştüm. Excel 2003'te hiç gördüğümü hatırlamayın.
abstrask

Yanıtlar:


105

Bulduğum bir yöntem (önceki yazıyı biraz genişletme):

  • Tüm sayfayı seçiniz.
  • Bir sütunu biraz daha genişletin (tüm sayfa seçildiğinden, tüm sütunlar daha da genişleyecektir)
  • Bir satır ayırıcıya çift tıklayın - satır yüksekliği otomatik olarak takılır
  • Bir sütun ayırıcıya çift tıklayın - sütun genişlikleri otomatik olarak takılacaktır

İşte bu kadar!


2
Bu gerçekten işe yarıyor gibi görünüyor. Gri alan, "biraz daha geniş" dediğiniz yer. Çalıştığım örneklerden biri, sütunu makul bir miktarda uzatmadığım sürece işe yaramadı, ama sonunda işe koyuldum. Teşekkürler!
devuxer

5
Tüm sayfayı seçtikten sonra iki rastgele sıra arasındaki satır ayırıcısını çift tıklattım ve tüm belge satır yüksekliğini yeniden ayarladı.
Keith Sirmons


Bu yöntem yalnızca tüm sütunlar aynı genişlikte olduğunda çalışmaz mı? Biraz daha geniş bir sütunu yeniden boyutlandırdığımda, diğer tüm sütunlar aynı genişlikte oldu (Excel 2010'da).
Ed Greaves

Bir dakika bekle - bu yöntem, sayfadaki tüm sütunların genişliğini artırmanın yan etkisine sahip değil mi?
Ant_222

13

Excel'in WYSIWYG en iyisi değil. Resminizde 'kedi'. sadece 5. çizgiye gizlice girer. Yakınlaştırma yüzdesini% 100'den düşük bir şeye düşürürseniz (örneğin% 99). şimdi 6. satıra kadar sarılı. Excel'in zoom seviyeniz ne olursa olsun hemen hemen her zaman görünür olmasını sağlayacak şekilde otomatik olarak sığmaya çalıştığını düşünüyorum.

AutoFit ile yaşayacağınız tek sorun bu değil. Buna ek olarak, kelime sarılmış bir hücrenin yazdırılma şekli, ekranda gördüğünüzle her zaman eşleşmez. Örneğinizi alın ve yazı tipini 11'de bırakırken Courier olarak değiştirin.

Courier olarak yazı tipi değiştirildi

Gördüğünüz gibi, A1 hücresine 1.5 fazladan satır verildi. Şimdi baskı önizlemesine bakalım, 'kedi.' tamamen gizlidir.

aynı dosyanın önizlemesini yazdır

Deneyimlerime göre, Excel'in bu sorunu bazı fontlarda ve font boyutlarında diğerlerinden daha fazla olması. Kurye daha kötüdür Courier New , boyut 11, 10 veya 12 daha kötüdür (bunlar yeni varsayılan olarak boyutunu 11 aldı Neden, hiçbir fikrim yok.)


Yani ... temelde kırdılar. Açıklaman yine de mantıklı, ama gerçekten beni rahatsız ediyor, şunun gibi: - /
abstrask

3

Sadece bu amaç için küçük bir makro yazdım. Kısayol tuşu (Ctrl-Shift-J) atadım ve bu benim için bir cazibe gibi çalışıyor.

Sub ArrangeTable()
'set proper column width and row height for the current region
    With Selection.CurrentRegion
        .Columns.ColumnWidth = 200
        .Columns.EntireColumn.AutoFit
        .Rows.EntireRow.AutoFit
    End With
End Sub

Bunu kalıcı olarak kullanılabilir hale getirmek için otomatik olarak yüklenen bir eklentiyi kolayca yapabilirsiniz:

  • boş bir çalışma kitabında bir modül oluşturun ve kodu yapıştırın,
  • istediğiniz kısayol tuşunu
  • sonra Save As, Add-inklasöre %appdata%\Microsoft\Excel\XLSTART
    Bu şekilde, Excel'i her başlatışınızda görünmez şekilde yüklenir.

Veya bunu yapabilirsiniz: Özel Alt Çalışma Sayfası_Değiştir (ByVal Target As Range) ArrangeTable End Sub
kurdtpage 23:16

0

Bazı durumlarda, "AutoFit Row Height" (Otomatik Satır Yüksekliği) çağrıldıktan sonra bazı satırlardaki fazladan boşluk sorunu, gizli bir sütunun bu satırlara metin sarması olabilir.


Bu soruda hangisi böyle değil.
Dmitry Grigoryev

0

Bir yoktur kb makale "önerir" Hiç bir satır yüksekliği ayarlarsanız, otomatik yükseklik autofitting kalıcı o çalışma sayfasının o satırın gittiğine göre (klasik Microsoft moda, kabul edilemeyecek seyrek olduğunu) bu konuda. Yüksekliğine dokunmadığınız satırlar yine de otomatik olarak sığacaktır.

Sütun genişliklerini 2003'te "standart genişlik" ayarıyla sıfırlayabilirsiniz (madman tarafından tasarlanan 2007: "varsayılan genişlik" olarak değiştirin), ancak bunu satırlara koymayı unuttular (tekrar) (ve tekrar). Yani süreklilik kaçınılmaz görünüyor. Bunun anlamı, varsayılan yükseklik 15’iniz varsa ve bir sayfa oluşturup tüm yükseklikleri 12’ye ayarladıysanız, otomatik otomatik sığdırmayı kaybedersiniz.


1
Bu davranışı çoğaltamıyorum. "Otomatik Sığdırmalı Yükseklik Ayarla" işlemini yapar yapmaz, o satır için herhangi bir manuel yükseklik ayarı hemen otomatik sığdırma yüksekliği ile değiştirilir. Sorun basitçe otomatik sığma yüksekliğinin sıklıkla yanlış olmasıdır.
Devuxer

Bu davranışı çoğaltabilirim. Bu tam olarak benim için çalışıyor.
Peter Nore

0

Bazen yaramazlık otoprografilerini düzeltmek için nükleer yöntem vardır.

Yaptığım, metni her hücreden kopyalayıp verileri Not Defteri'ne yapıştırmak ve ardından satırı silmek. Sonra hemen kopyalayıp boş bir satır ekledim ancak silinmiş satır ile aynı biçimlendirme ve iyi davranışa sahip. (Sol satır düğmelerini kullanarak tüm satırı kopyalayıp yerleştirmelisiniz.)

Bu yapıldıktan sonra geri dönüp not defteri içindeki metni her hücreye yerleştirmeniz gerekir. ( F2Metin eklemeden önce her hücrenin düzenleme modunu kullanın veya etkinleştirin.) Bu bir acıdır, bu yüzden özellikle geniş çaplı çalışma sayfaları için son çaredir.

Sorun programın kendisinde olduğu için bazen tek çözümdür.


1
metni her bir hücrenin dışına kopyalayın - bu, el ile biçimlendirmenin yapacağı kadar iş gerektiriyor gibi görünüyor.
Dmitry Grigoryev

0

Bunu tam olarak test etmedim ama benim için çalışıyor. Temelde, tüm sayfaları otomatik olarak ayarlayacaktır, ardından otomatik ayarlama tarafından uzatılmadığı sürece, geriye doğru gidip sütun genişliğini orijinal genişliğe ayarlayacaktır. Sadece 10 sütunum vardı ve 1000'den fazla satır alamadım, bu yüzden kodu gerektiği gibi ayarlayın.

Sub ResizeCells()
    Dim sheetCounter As Integer
    Dim rowCounter As Integer
    Dim colCounter As Integer
    Dim totalWidth As Double
    Dim oldColWidths(1 To 10) As Double

    For sheetCounter = 1 To ThisWorkbook.Sheets.Count
        ActiveWorkbook.Worksheets(sheetCounter).Select
        totalWidth = 0

        ' Extend the columns out to 200
        For colCounter = 1 To 10
            oldColWidths(colCounter) = Cells(1, colCounter).ColumnWidth
            totalWidth = totalWidth + oldColWidths(colCounter)
            Cells(1, colCounter).ColumnWidth = 200
        Next

        For rowCounter = 4 To 1000
            If Cells(rowCounter, 1).Value <> "" Or Cells(rowCounter, 2).Value <> "" Or Cells(rowCounter, 3).Value <> "" Then
                Rows(rowCounter & ":" & rowCounter).EntireRow.AutoFit
            End If
        Next

        ' do autofit
        For colCounter = 1 To 10
            Cells(1, colCounter).EntireColumn.AutoFit
        Next

        ' reset to original values if current width is less than the original width.
        For colCounter = 1 To 10
            If Cells(1, colCounter).ColumnWidth < oldColWidths(colCounter) + 0.25 Then
                Cells(1, colCounter).ColumnWidth = oldColWidths(colCounter)
            End If
        Next
    Next
End Sub

Autofitting hatasını nasıl çözer? Satırlara otomatik sığdırın, sonra sütunlara otomatik sığdırın ve ardından orijinal sütun genişliklerini yeniden ayarlayın. Neden doğru montaj sırası yüksekliğine sahip? Bu arada, totalWidthişsiz.
Ant_222

Benim için tam olarak işe yaramıyor, çünkü yalnızca daralmış olan sütunların genişliğini geri yüklüyorsunuz. Bu nedenle algoritmanız sütun genişliğini korumaz.
Ant_222

-1

Yorumlamak için Dunc :

Benzer bir sorunu da çözerek:

  1. E-tablonun tamamını seçme.

  2. İki satır arasındaki kenar boşluğundaki çizgiye çift tıklayarak.

Özellikle bu fazladan satırdaki sorununuzu ele almak için orada bir karakter olduğunu varsayıyorum. Görünür bir karakter olmayabilir, ama kesinlikle orada bir şeyler var.


3
Adımlarınız daha önce denediklerimden farklı değil (satırlar arasında çift tıklamak sadece "Satır Yüksekliğine Otomatik Sığdır" kısayoludur). Teorinize gelince, fazladan bir karakter var, haklı olabilirsin, ama kesinlikle bir tane yazmadım ve ondan nasıl kurtulacağımı bilemedim. Sizi resme yazdığım gibi tam metni Excel'e yazmaya çalışın ve aynı sonuçları alıp almadığınızı görün.
Şubat'ta devuxer

1
Orada benim karakterim yok.
Raystafarian,

-1

Diğer yorumları okumak için zaman ayırmadım. Neden ikinci bloğun değil, birinci bloğun altındaki satır?

Bunun nedeni, metnin hücrenin sağ kenarına çok yakın bitmesidir. Sütunu biraz daha geniş olacak şekilde ayarlarsanız ve satırlar arasında çift tıklarsanız, buna göre yeniden boyutlandırılır.


4
Haklı olduğuna hiç şüphem yok, ama o zaman bu artık "otomatik" değil, el kitabı.
devuxer

-1

Ben de bu küçük ama son derece rahatsız edici bir hataya yıllarca katlandım. İçinde çoğu metin bulunan hücre için satır genişliği ile uğraşmaktan başka bir işim yok ve sonunda program metni uygun şekilde gösterip gösterecek.


sıra genişliği ile uğraşmak , tekrarlanabilir bir çözüm değildir.
Dmitry Grigoryev

-1

Kolay bir çözüm var:

1) Otomatik biçimlendirmek istediğiniz tüm satırları seçin (büyük bir bloksa, ilk önce tıklayıp ardından Shift + End ve Shift + Down tuşlarına basın)

2) Seçimi sağ tıklayın, Hücreleri Biçimlendir, Hizala sekmesi, Metin kaydır seçimini kaldırın.

Bu yardımcı olur umarım ;)


1
Seçimi kaldırırsanız Wrap text, tüm satırlar aynı boyutta olacağından artık satır yüksekliklerinizi otomatik olarak ayarlamanın bir anlamı yoktur.
Dmitry Grigoryev

Yıllardır bu sorundan rahatsız oldum. Sorunlu bir satır için Kaydırma Metni'ni değiştirmek, otomatik sığdırma işlevini geri yükledi.
Mitch,

-1

Excel 2010'a sahibim. Yakınlaştırma ayarım% 100 olmadığında bu sorunun başıma geldiğini gördüm. % 100'ümdeyken, metni sütunlar ve satırlar için AutoFit ile kesemiyorum


3
Sorum için kullandığım örnekte, sürekli olarak =% 100 yakınlaştırdım. Sorun ne olursa olsun ortaya çıktı.
devuxer

-1

Benim hipotezim, Excel'in çok fazla çizgiyi uzatması gerektiğinde düğümlenmesidir. Yukarıdakilere benzer bir deneyim yaşadım. Sonunda fazladan bir NL / CR / LF var gibi görünüyor ama olmadığını biliyorum. Hücreyi bir seferde bazı karakterler oluşturursam, belirli bir boyuta ulaşana kadar Tamam'ı otomatik olarak biçimlendirir, sonra ekstra satıra yerleştirir. (Bazı karakterleri silerek başlarsanız tersine benzer davranış olur.) Farklı hücrelerde farklı zamanlarda gerçekleşir.

Kötü haber!

Eğer Yani eğer olabilir hücre genişliğini uzatmak, muhtemelen sorunu önleyebilirsiniz. Yapamıyorsanız (benim durumumda olduğu gibi) manuel biçimlendirme ile sıkışmışsınız. Dediğim gibi, "Bummer!"


-1

Aslında orada fazladan bir karakter var. Her alanın sonundaki gizli LF karakteridir. Metin sadece doğru boyutta olduğunda, ekstra satır LF karakterini tutmak için oradadır. Sütun genişliğini başkalarının önerdiği gibi yeniden boyutlandırmak, hücrenin sorununu çözecektir, ancak e-tablonuz bu aynı sütunda çok sayıda farklı boyut değerine sahipse, bu hücre için düzeltmenizin sütundaki başka bir hücrenin soruna neden olması olasıdır . Çoğu zaman onunla yaşamayı öğrendim.


OP elbette Alt + Enter ile oraya koymuş olmadıkça, her alanın sonunda kesinlikle gizli bir LF karakteri yoktur . Asıl soru, yeni satır karakteri olmadığında ortaya çıkan durumla ilgili, ancak Excel hala hücreleri düzgün bir şekilde hizalayamıyor.
Dmitry Grigoryev

-2

Benim için işe yarayan şey (Excel 2010), verilerimin sağındaki kullanılmamış yüzlerce sütunu silmekti. Orada otomatik sıra yüksekliğinin yanlış çalışmasına neden olan bir şey olduğunu tahmin edebiliyorum.


4
Bunun nasıl yardımcı olacağını görebiliyorum, ancak sorumla gösterilen test durumu için herhangi bir fark yaratmıyor.
devuxer

-2

tüm hücreleri seçin ve satırları iki kez ayıran satıra tıklayın ... otomatik olarak yapacaktır.

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.