Jak sprawić, by komórki były doskonałymi kwadratami w programie Excel?


52

W Microsoft Excel

alternatywny tekst

Chcę ustawić wysokość pierwszych trzech wierszy i pierwszych czterech kolumn (12 komórek w lewym górnym rogu) tak, aby komórki te były kwadratami. Jak można to zrobić?


Co zaskakujące, Excel mówi:

Row height: 15
Column width: 8.43

Nie są to więc w tej samej skali.

Wykonanie obu z nich 8.43 daje mi to:

alternatywny tekst

Co mam teraz zrobić?


5
Zobacz ten artykuł .
Lance Roberts,

Odpowiedzi:


50

Jeszcze jeden sposób ... zmień widok na Układ strony. Spowoduje to zmianę skali siatki na cale, a następnie możesz ustawić zarówno wysokość, jak i szerokość na tę samą wartość (np. 25 cali). Układ strony IMO to najlepszy standardowy widok do pracy nad wyglądem arkusza kalkulacyjnego.

Oto przykład z rzeczywistymi wymiarami dla obu widoków:

Komórki kwadratowe


7
Najbardziej idealna odpowiedź na ten idiotyczny problem z Excelem, jaki kiedykolwiek słyszałem !! Zwykle nie mierzę rzeczy w „punktach” ...
namezero

Jeśli wrócisz do zwykłego widoku i chcesz ukryć podziały stron, które wcześniej były wyłączone: Plik -> Opcje -> Zaawansowane -> Opcje wyświetlania tego arkusza -> odznacz Pokaż podziały strony.
BurnsBA

2
skala siatki to nie cale, ale jednostka domyślna systemu lub programu Excel, która może wynosić cm lub mm
phuclv

15

Wybierz wszystkie (lub potrzebne wiersze / kolumny), a następnie przeciągnij, aby zmienić rozmiar do żądanego rozmiaru.

  1. Przeciągnij krawędź nagłówka kolumny, aby zmienić rozmiar szerokości kolumny. Podpowiedź pojawi się z dokładną liczbą pikseli.
  2. Zapamiętaj wartość w pikselach!
  3. Przeciągnij krawędź nagłówka wiersza, aby zmienić rozmiar wysokości wiersza, działa to w ten sam sposób.
  4. Przeciągnij do tej samej wartości w pikselach.

Gotowy!


To najprostsza odpowiedź. Bez skryptów i zmieniających się widoków. Bardzo dobrze.
Scott Beeson

1
Pozytywne. To wspaniale, ponieważ udało mi się znaleźć ekwiwalent pikseli w calach :)
deepakssn

8

Szerokość kolumny Excela jest mierzona liczbą zer (0), które mogą zmieścić się w komórce w stylu Normalnym. Aby przekonwertować na punkty (sposób pomiaru wysokości wiersza), patrz

http://www.dailydoseofexcel.com/archives/2004/06/01/column-widths-in-points/

Jeśli nie musisz być dokładny, po prostu zrób to. Jeśli musisz być bliżej niż gałki ocznej, umieść kwadrat na pasku narzędzi Rysowanie na arkuszu i zmień jego rozmiar. Jeśli chcesz to 10 x 10, użyj takiego kodu:

sheet1.Shapes(1).Height = 10
sheet1.Shapes(1).Width = 10
sheet1.Shapes(1).Top = sheet1.Shapes(1).TopLeftCell.Top
sheet1.Shapes(1).Left = sheet1.Shapes(1).TopLeftCell.Left

Następnie możesz ręcznie dopasować rozmiar wiersza i kolumny do kwadratu i odczytać wysokość i szerokość kolumny.


3
W programie tak potężnym jak Excel pomyślałbym, że coś tak prostego jak to byłoby łatwiejsze. Ale nie jest.
Sasha Chedygov

14
To dlatego, że Excel to program do obsługi arkuszy kalkulacyjnych / księgowych, a nie silnik układu dokumentu. Nie ma również sensu nadawanie komórkom bezwzględnych wysokości / szerokości, ponieważ różne systemy używają różnych domyślnych czcionek, które mają różne wymiary znaków. Zastosowanie względnych jednostek jak emma sens.
Lèse majesté

5

VBA wydaje się trochę przesadą dla tak prostego wyniku. Jeśli klikniesz i przytrzymasz, gdy idziesz przeciągnąć, aby zmienić rozmiar wiersza / kolumny, rozmiar w pikselach zostanie pokazany w nawiasach. Jednostki te nie są skalowane, więc jeśli ustawisz rozmiary wierszy i kolumn na równe piksele, będą one kwadratowe. Oczywiście jest to proces ręczny .. ale możesz znaleźć równoważne rozmiary, a następnie wybrać zakres wierszy / kolumn i ustawić wszystkie ich rozmiary naraz.


2

Jeśli chcesz to zrobić dla całego arkusza, możesz użyć tej sztuczki - co może być pomocne: kliknij pole po lewej stronie nagłówka kolumny A, aby zaznaczyć wszystkie komórki; kliknij i przeciągnij jeden z dzielników nagłówka kolumny do żądanego rozmiaru, zwracając uwagę na liczbę pikseli dla wynikowej szerokości komórki (używam programu Excel 2007, który to pokazuje); zrób to samo dla jednego z dzielników etykiet wierszy, dopasowując go do szerokości kolumny w pikselach. To powinno zrobić wszystkie komórki w polach arkusza. Co oczywiście nie jest tym, o co prosiłeś, ale miałem nadzieję, że ta sztuczka zadziała z podzbiorem komórek. Niestety tak nie jest.


2

Musisz zdawać sobie sprawę, że to, co jest matematycznie kwadratem, a co wizualnie kwadratem, jest inne. Nie wszystkie monitory są wykonane w ten sam sposób. Zazwyczaj piksele są szersze niż wysokie.

Spójrz na następujące zdjęcie:

wprowadź opis zdjęcia tutaj

Każdy subpiksel czerwony, zielony i niebieski tworzy cały piksel. Jak widać, kombinacja 3 jest szersza niż wysokość 1 subpiksela. W większości przypadków różnica jest subtelna i większość ludzi może jej nie zauważyć. Jednak w niektórych przypadkach ludzie to robią.


1
Ten obraz jest idealny, jeśli ktoś chce migrenę :)
Dave

2

Ustaliłem, że można wykonać kwadrat o stosunku 7,25 wysokości wiersza na każdy 1,0 punkt szerokości kolumny.


... dla mnie to .ColumnWidth = .RowHeight / 7tylko +1 za pomysł użycia współczynnika.
ashleedawg

2

Właściwie miałem ten sam problem w przeszłości. Dla mnie najlepszy jest następujący kod VBA. Znalazłem relację liniową po prostu metodą prób i błędów.

Kod działa dla pojedynczych komórek, ale także dla zaznaczenia. W tym drugim przypadku kwadraty są oparte na całkowitej szerokości lub wysokości zaznaczenia.

Sub MakeCellSquareByColumn()
    Selection.RowHeight = Selection.Width / Selection.Columns.Count
    Selection.ColumnWidth = (((Selection.Width / Selection.Columns.Count) / 0.75 - 5) / 7)
End Sub

Sub MakeCellSquareByRow()
    Selection.ColumnWidth = (((Selection.Height / Selection.Rows.Count) / 0.75 - 5) / 7)
    Selection.RowHeight = Selection.Height / Selection.Rows.Count
End Sub

Możesz umieścić te makra w module i przypisać do nich przyciski na pasku narzędzi szybkiego dostępu

Zauważ, że kwadraty znikają (poprzez zmianę szerokości kolumny) po zmianie typu lub rozmiaru czcionki. Wynika to ze sposobu, w jaki Excel oblicza szerokość kolumny. Zobacz: https://support.microsoft.com/en-us/help/214123/description-of-how-column-widths-are-determined-in-excel


2

Poniższy kod działał dla mnie

Sub Grid_Squares()
    With Cells(1, 1)
        Cells.RowHeight = .Width
        Cells.ColumnWidth = .ColumnWidth
    End With
End Sub

Wynik:

Wynik


2

Oto rozwiązanie VBA.

Private Sub MakeSquareCells()

'//  Create graph paper in Excel see    http://www.erlandsendata.no/english/index.php?d=envbawssetrowcol  if you want cm or inches


    Set Cursheet = ActiveSheet

    'don't drive the person crazy watching you work
    UpdateScreen = Application.ScreenUpdating
    Application.ScreenUpdating = False
    With wksToHaveSquareCells
        .Columns.ColumnWidth = 5 '// minimum 2, max 400 ; above 7 --> zoom doesn't work nice
        .Rows.EntireRow.RowHeight = .Cells(1).Width
        '// ActiveWindow.Zoom = true
    End With

    Application.ScreenUpdating = UpdateScreen
    Cursheet.Activate           '// Reactivate sheet that has been active at entrance of this subroutine

End Sub

Co to jest wksToHaveSquareCells?
Excellll,

1

Najpierw wybierz komórki, których rozmiar chcesz zmienić. Następnie na Homekarcie przejdź do Cellspola i kliknij Formatopcję. Tutaj możesz zmienić Row Heighti Column Widthwybrane komórki, jak chcesz.


Proszę zobaczyć moje aktualizacje w pytaniu.
Lazer,

Możesz ręcznie spróbować uzyskać kwadrat. Na przykład ustaw wysokość wiersza = 15 i szerokość kolumny = 3.
Mehper C. Palavuzlar

1

Chciałem stworzyć idealną kwadratową siatkę do projektu szycia i wciąż otrzymywałem wszelkiego rodzaju dziwne odpowiedzi na to pytanie, więc postanowiłem sam z nią zagrać, aby to rozgryźć. Odkryłem, że niemożliwe jest uzyskanie idealnego kwadratu, ale podszedłem tak blisko, jak to tylko możliwe, tylko kawałek taśmy.

  1. Podświetl kwadraty, które chcesz sformatować.
  2. Przejdź do zakładki formatu.
  3. Sformatuj szerokość kolumny na 12,43
  4. Następnie sformatuj wysokość komórki do 75,00.

Za pomocą linijki odkryłem, że miałem tylko ułamek długości 7 i 10 cali długości. Mam nadzieję że to pomoże.


1

Używam stosunku 5-1 / 3, wysokości wiersza do szerokości kolumny.

Na przykład, zrób wiersz 53,33 wysoki, a szerokość kolumny odpowiednio 10 lub 106,66 i 20, a będziesz wystarczająco blisko do pracy rządowej.


... dla mnie to .ColumnWidth = .RowHeight / 7tylko +1 za pomysł użycia współczynnika.
ashleedawg

1

Uważam, że jest to najprostsze rozwiązanie ...

Ta metoda wykorzystuje linijkę Excela, dzięki czemu bardziej zrozumiałe / łatwiejsze i dokładniejsze wymiary wierszy i kolumn.

  • Wybierz Widok na Wstążce
  • W widokach skoroszytów wybierz Układ strony
  • Jeśli linijka nie wyświetla się, zaznacz pole wyboru Linijka w grupie Pokaż.
  • Naciśnij przycisk Wybierz wszystko (lewy górny róg poniżej książki nazw)
  • Kliknij wiersz prawym przyciskiem myszy, wybierz opcję dopasowania rozmiaru, a następnie wprowadź żądaną wartość pomiaru. Kliknij prawym przyciskiem myszy i powtórz dla kolumny.

To jest naprawdę. Rezultatem jest to, co wydaje się być doskonałymi wizualnie kwadratami. Istnieje nawet opcja zmiany jednostek miary w grupie Wyświetlanie karty Zaawansowane w Opcjach programu Excel. Mam nadzieję, że to będzie najbardziej pomocne! :)


0

Kliknij i przeciągnij granicę między rzędami. Aby zmienić rozmiar więcej niż raz kolumny / wiersza na raz, zaznacz je wszystkie, kliknij prawym przyciskiem myszy i kliknij „Wysokość wiersza ...” i ustaw tę samą wysokość co szerokość wierszy.


W menu po kliknięciu prawym przyciskiem myszy nie ma „wysokości wiersza”.
Lazer,

0
  • Wybierz kolumny (kliknij kolumnę A, a następnie przytrzymaj klawisz Shift i kliknij drugi koniec)

  • Kliknij jedną z kolumn prawym przyciskiem myszy, kliknij opcję Szerokość kolumny, a następnie wprowadź nową wartość.

  • Możesz zrobić to samo z rzędem, a następnie kliknąć Wysokość wiersza, aby uzyskać wysokość wiersza.


0

Jeśli chcesz, aby wiersz i kolumna wyglądały na kwadratowe, wybierz wszystkie komórki, które chcesz, aby były kwadratowe, i zmień wysokość wiersza na 28,8 ORAZ zmień szerokość kolumny na 4,56.


0

Proste rozwiązanie

  • zaznacz wszystkie komórki
  • przeciągnij kolumny do pożądanego rozmiaru w pikselach (zobaczysz rozmiar kolumny zarówno w punktach, jak i pikselach podczas przeciągania i zmiany rozmiaru kolumn)
  • powtórz dla wierszy (wybierając tę ​​samą liczbę pikseli)
  • to powinno dać ci idealnie kwadratowe komórki w całym arkuszu

0

Excel 2010 Dostosowanie w widoku Układ strony, a następnie przełączenie z powrotem do widoku Normalny nie działa. Udało mi się zweryfikować, używając narzędzi do rysowania i wykonując idealny kwadrat w widoku normalnym. Jest to najłatwiejsza metoda tworzenia kwadratów o dowolnym rozmiarze.

Szerokość kolumny = 2,71 Wysokość rzędu = 18.


Jaka jest dokładnie twoja odpowiedź? „Wstaw kwadrat z paska narzędzi Rysowanie”? Takiej odpowiedzi udzielono ponad cztery lata temu. „Rozmiar komórek do 2,71 × 18”? Jak to jest sposób, aby „zrobić kwadraty o dowolnym rozmiarze”? „Rozmiar komórek w stosunku do 2,71 × 18”? Jest to coś w rodzaju czwartej odpowiedzi, która sugeruje określony stosunek liczbowy.
Scott,

0
  • Wybierz Wszystkie - Ctrl + A
  • Kliknij prawym przyciskiem myszy dowolny nagłówek kolumny i wybierz Szerokość kolumny
  • Wpisz wartość = 4> Ok
  • Tam zobaczysz wszystkie komórki w idealnie kwadratowym kształcie.

1
Nie na moim monitorze z moją wersją programu Excel z moimi ustawieniami. Określona wartość szerokości kolumny jest gwarantowana tylko w przypadku dokładnej konfiguracji i jest bezużyteczna jako odpowiedź bez wyraźnego określenia, co to jest. Przeczytaj pozostałe odpowiedzi, aby dowiedzieć się, dlaczego.
robinCTS

0

To całkiem nieźle przy użyciu VBA. Ustaw mundur rowHeight, a następnie użyj Widthwłaściwości (zwraca rozmiar kolumny w punktach) i podziel RowHeightprzez nią, aby uzyskać stosunek wysokości do szerokości bez jednostki. Stwórz nowy, ColumnWidthktóry razy w oryginale, ColumnWidthaby wszystko było kwadratowe.

Sub makeSquares() 
Cells.RowHeight = 20
With Cells(1, 1)
W = .ColumnWidth
HWratio = .RowHeight / .Width
Cells.ColumnWidth = W * HWratio
End With
End Sub

Właśnie zdałem sobie sprawę, że JackRni zrobił to trochę czystsze.
Maks
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.