Как сделать клетки идеальными квадратами в Excel?
В Microsoft Excel
Я хочу сделать высоту первых трех строк и первых четырех столбцов (12 ячеек в верхнем левом углу) такой, чтобы эти ячейки были квадратами. Как это может быть сделано?
Удивительно, но Excel говорит:
Row height: 15
Column width: 8.43
Таким образом, они не в том же масштабе.
Создание обоих из них 8.43 дает мне это:
Что мне теперь делать?
24 ответа
Еще один способ... изменить свой вид на макет страницы. Это изменяет масштаб сетки на дюймы, а затем вы можете специально установить высоту и ширину на одно и то же значение (например, 25 дюймов). Макет страницы IMO - лучший стандартный вид для работы над внешним видом электронной таблицы.
Вот пример с фактическими размерами для обоих видов:
Выберите все (или нужные вам строки / столбцы), затем перетащите, чтобы изменить размер до желаемого размера.
- Перетащите край заголовка столбца, чтобы изменить его ширину. Появится всплывающая подсказка с точным количеством пикселей.
- Запомните значение пикселя!
- Перетащите край заголовка строки, чтобы изменить размер строки, он работает так же.
- Перетащите на то же значение пикселя.
Готово!
Ширина столбца Excel измеряется числом нулей (0), которые могут поместиться в ячейке в стиле Normal. Чтобы преобразовать в точки (как измеряется высота строки), см.
http://www.dailydoseofexcel.com/archives/2004/06/01/column-widths-in-points/
Если вам не нужно быть точным, просто посмотрите на это. Если вам нужно быть ближе к глазу, поместите квадрат с панели инструментов "Рисование" на свой лист и установите его размер. Если вы хотите, чтобы это было 10 x 10, используйте такой код:
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
Затем вы можете вручную изменить размер строки и столбца, чтобы он соответствовал квадрату и считал высоту и ширину столбца.
VBA кажется немного излишним для такого простого результата. Если вы нажмете и будете удерживать, когда будете перетаскивать, чтобы изменить размер строки / столбца, размер в пикселях будет показан в скобках. Эти единицы не масштабируются, поэтому, если вы установите одинаковые размеры строк и столбцов, они будут квадратными. Конечно, это ручной процесс ... но вы можете найти эквивалентные размеры, а затем выбрать диапазон строк / столбцов и установить все их размеры одновременно.
Следующий код работал для меня
Sub Grid_Squares()
With Cells(1, 1)
Cells.RowHeight = .Width
Cells.ColumnWidth = .ColumnWidth
End With
End Sub
Результат:
Я определил, что квадрат можно сделать с соотношением 7,25 высоты строки для каждой 1,0 точки ширины столбца.
Вы должны знать, что математически квадрат и визуально квадрат - это разные вещи. Не все мониторы сделаны одинаково. Обычно пиксели шире, чем они высокие.
Посмотрите на следующую картинку:
Каждый красный, зеленый и синий субпиксель составляют весь пиксель. Как вы можете видеть, комбинация из 3 шире, чем высота 1 субпикселя. В большинстве случаев разница невелика, и большинство людей могут ее не заметить. Однако в некоторых случаях люди делают.
Если вы хотите сделать это для всего листа, вы можете использовать этот прием - который может быть полезен в любом случае: щелкните поле слева от заголовка столбца A, чтобы выбрать все ячейки; щелкните и перетащите один из разделителей заголовков столбцов до нужного размера, отметив количество пикселей для результирующей ширины ячейки (я использую Excel 2007, который показывает это); сделайте то же самое для одного из разделителей меток строки, сопоставив его с шириной столбца в пикселях. Это должно сделать все ячейки в ящиках листов. Что, конечно, не то, что вы просили, но я надеялся, что этот трюк будет работать с подмножеством ячеек. К сожалению это не так.
Вот решение 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
На самом деле, у меня была такая же проблема в прошлом. Для меня лучше всего работает следующий код VBA. Я нашел линейное соотношение методом проб и ошибок.
Код работает как для отдельных ячеек, так и для выбора. В последнем случае квадраты основаны на общей ширине или высоте выделения.
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
Вы можете поместить эти макросы в модуль и назначить им кнопки на панели быстрого доступа
Обратите внимание, что квадраты исчезают (при изменении ширины столбца) при изменении типа или размера шрифта. Это связано с тем, как Excel вычисляет ширину столбца. См.: https://support.microsoft.com/en-us/help/214123/description-of-how-column-widths-are-determined-in-excel
Я считаю, что это самое простое решение...
Этот метод использует линейку Excel, таким образом, более понятные / более простые и точные размеры строк и столбцов.
- Выберите Вид на ленте
- В представлении рабочей книги выберите макет страницы
- Если линейка не отображается, установите флажок Линейка в группе Показать.
- Нажмите кнопку "Выбрать все" (левый верхний угол под именной книгой)
- Щелкните правой кнопкой мыши строку, выберите параметр регулировки размера и введите желаемое значение измерения. Щелкните правой кнопкой мыши и повторите для столбца.
Это действительно так. В результате получаются визуально совершенные квадраты. Существует даже возможность изменить единицы измерения в группе "Отображение" на вкладке "Дополнительно" в параметрах Excel. Надеюсь, это будет очень полезно!:)
Я хотел создать идеальную квадратную сетку для швейного проекта и продолжал получать всевозможные странные ответы на этот вопрос, поэтому я решил поиграть с ним сам, чтобы разобраться. Я обнаружил, что невозможно получить идеальный квадрат, но я подошел как можно ближе, всего в нескольких шагах.
- Выделите квадраты, которые вы хотите отформатировать.
- Перейдите на вкладку формата.
- Отформатируйте ширину столбца в 12.43
- Затем отформатируйте высоту ячейки до 75,00.
Используя линейку, я обнаружил, что на расстоянии 7 и 10 дюймов у меня была небольшая доля. Надеюсь это поможет.
Сначала выберите ячейки, размер которых вы хотите изменить. Тогда на Home
вкладка, перейдите к Cells
поле и нажмите на Format
вариант. Здесь вы можете изменить Row Height
а также Column Width
из выбранных ячеек, как вы хотите.
Я использую соотношение 5-1/3, высота строки к ширине столбца.
Например, сделайте высоту строки 53,33 и ширину столбца 10 или 106,66 и 20 соответственно, и вы окажетесь достаточно близко для правительственной работы.
Это делает трюк довольно аккуратно, используя VBA. Установить униформу rowHeight
затем используйте Width
свойство (возвращает размер столбца в точках) и делить RowHeight
по нему, чтобы получить соотношение высоты и ширины без единицы. Сделать новый ColumnWidth
что раз оригинал ColumnWidth
сделать все квадратным
Sub makeSquares()
Cells.RowHeight = 20
With Cells(1, 1)
W = .ColumnWidth
HWratio = .RowHeight / .Width
Cells.ColumnWidth = W * HWratio
End With
End Sub
- Выделить все - Ctrl+A
- Щелкните правой кнопкой мыши заголовок любого столбца и выберите ширину столбца.
- Введите значение = 4 > ОК
- Там вы увидите все клетки в идеальной квадратной форме.
Если вы хотите, чтобы строка и столбец выглядели квадратными, выберите все ячейки, которые вы хотите сделать квадратными, и измените высоту строки на 28,8 И измените ширину столбца на 4,56.
Excel 2010 Настройка в представлении макета страницы, а затем переключение обратно в обычный режим не работает. Я смог проверить с помощью инструментов рисования и создания идеального квадрата в обычном представлении. Это самый простой способ сделать квадраты любого размера.
Ширина столбца = 2,71 Высота строки = 18.
Нажмите и перетащите на границе между строками. Чтобы изменить размер более одного столбца / строки за раз, выделите их все, щелкните правой кнопкой мыши и выберите "Высота строки..." и установите для нее ту же высоту, что и широкие строки.
Всего четыре шага:
- В качестве масштаба выберите дюймы.
- Преобразуйте пиксели в дюймы по этой формуле:
(25 ×Pixels)^(1/3)
. - Умножьте этот результат на 25,4, чтобы получить значение в миллиметрах, если вам нужно.
- Сделайте оба значения одинаковыми.
Простое решение
- выбрать все ячейки
- перетащите столбцы до нужного размера в пикселях (размер столбца будет отображаться как в точках, так и в пикселях при перетаскивании и изменении размера столбцов)
- повторить для строк (выбрав одинаковое количество пикселей)
- это должно дать вам идеальные квадратные ячейки на листе
Чтобы сделать квадрат из одной ячейки, установите для него нужную ширину, а затем используйте
cell.RowHeight = cell.Width
Обязательно не используйте или - почему?
-
.Height
(и.Width
), похоже, доступны только для чтения. - измеряется в странных единицах, о которых здесь все говорят.
Я вручную возвел ячейку в квадрат в Excel (до размера 20,71 «что-то» и 150 «пикселей») и посмотрел на ее свойства в VBA:
Итак, вы видите, как каждый ответ манипулирует.ColumnWidth
должно быть очень сложным - и в моем случае решение, которое работало при уровне масштабирования 100% (Windows 10), потерпело неудачу при уровне масштабирования 125%. Существует множество вопросов, связанных с настройкой столбцов на желаемую ширину (в пикселях или других единицах измерения), но на самом деле этот вопрос не об этом. Снова установите ширину (вручную или другим способом), затем установите высоту по ширине.
Этот ответ вдохновлен ответом @AmitPanasara, обязательно проголосуйте за него, если вам нравится этот.
Выберите столбцы (щелкните столбец A, затем удерживайте Shift и щелкните другой конец)
Щелкните правой кнопкой мыши по одному из столбцов, выберите " Ширина столбца" и введите новое значение.
Вы можете сделать то же самое со строкой, затем нажать " Высота строки", чтобы получить высоту строки.
пикселей RowH ColW 50 25 3,58 100 50 7,75 200 100 16,08 300 150 24,42 400 200 32,75 600 300 49,92 800 400 66,80
Кажется, что зависимость линейная: построив график ширины и высоты, мы получим:
ШИРИНА = 0,1687 x В – 0,7632