如何在Excel中制作细胞完美正方形?


52

在Microsoft Excel中

替代文字

我想制作前三行和前四列的高度(左上角有12个单元格),这样这些单元格就是正方形。如何才能做到这一点?


令人惊讶的是,Excel说:

Row height: 15
Column width: 8.43

所以,这些不是同一规模。

让他们两个8.43给我这个:

替代文字

现在,我该怎么办?


5
看到这篇文章
Lance Roberts 2010年

Answers:


50

还有一种方法......将视图更改为页面布局。这会将网格比例更改为英寸,然后您可以将高度和宽度专门设置为相同的值(例如25英寸)。IMO页面布局是处理电子表格外观的最佳标准视图。

以下是两个视图的实际尺寸示例:

方形细胞


7
我听过的这个愚蠢的Excel问题最完美的答案!! 我通常不会在“积分”中测量东西...
namezero 2014年

如果您返回常规视图并希望隐藏以前禁用的分页符:文件 - >选项 - >高级 - >此工作表的显示选项 - >取消选中显示分页符。
BurnsBA

2
网格尺度是英寸,但该系统或Excel默认单元,其可以是厘米毫米
phuclv

15

选择所有(或您需要的行/列),然后拖动以调整大小到所需的大小。

  1. 拖动列标题的边缘以调整列宽。出现一个工具提示,其中包含精确的像素数。
  2. 记住像素值!
  3. 拖动行标题的边缘以调整行高,它的工作方式相同。
  4. 拖动到相同的像素值。

完成!


这是最简单的答案。没有脚本或更改视图。非常好。
Scott Beeson 2016年

1
Upvoted。这很棒,因为我能够找到相当于英寸的像素:)
deepakssn

8

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

然后,您可以手动调整行和列的大小以适合方块并读取高度和列宽。


3
我认为使用像Excel这样强大的程序,这样简单的东西会更容易。但事实并非如此。
Sasha Chedygov 2010年

14
那是因为Excel是电子表格/会计程序,而不是文档布局引擎。由于不同的系统使用不同的默认字体(具有不同的字符尺寸),因此给单元格提供绝对高度/宽度也没什么意义。使用相对单位em更有意义。
Lèsemajesté2010年

5

对于这样一个简单的结果,VBA似乎有点过分了。如果在拖动以更改行/列大小时单击并按住,则以像素为单位的大小显示在括号中。这些单位不会缩放,因此如果将行和列大小设置为相等的像素,它们将是方形的。当然,这是一个手动过程..但您可以找到等效的大小,然后选择行/列的范围并一次设置所有大小。


2

如果你想为整张表做,你可以使用这个技巧 - 这可能会有所帮助:点击列标题A左侧的框以选择所有单元格; 单击并将其中一个列标题分隔符拖动到所需的大小,并记下所得单元格宽度的像素数(我使用的是Excel 2007,它显示了这一点); 对其中一个行标签分隔符执行相同操作,将其与列宽按像素匹配。这应该使表格框中的所有单元格。当然这不是你问的问题,但我曾希望这个技巧可以用于一部分细胞。不幸的是它没有。


2

你需要知道,数学上的正方形和视觉上的正方形是不同的。并非所有显示器都以相同的方式制造。通常像素比它们更高。

看下面的图片:

在此输入图像描述

每个红色,绿色和蓝色子像素构成整个像素。如您所见,3的组合比1个子像素的高度宽。在大多数情况下,差异是微妙的,大多数人可能不会注意到它。但是,在某些情况下,人们会这样做。


1
这个图像是完美的,如果任何人想要偏头痛:)
Dave

2

我确定,对于每1.0点的列宽,可以制作一个7.25行高的比例。


...对我而言.ColumnWidth = .RowHeight / 7,仅仅使用比率的想法就是+1。
ashleedawg

2

实际上,我过去也遇到过同样的问题。对我来说最有效的是以下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


2

以下代码对我有用

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

结果:

结果


2

这是一个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

什么是wksToHaveSquareCells
Excellll 2012年

1

首先,选择要调整大小的单元格。然后在Home选项卡上,转到Cells框并单击Format选项。在这里,你可以改变Row HeightColumn Width你想要选择的细胞。


请在问题中查看我的更新。
Lazer 2010年

您可以手动尝试获取正方形。例如,设置行高= 15和列宽= 3.
Mehper C. Palavuzlar 2010年

1

我想为一个缝纫项目制作一个完美的正方形网格,并为这个问题不断得到各种奇怪的答案,所以我决定自己玩它来弄明白。我发现不可能得到一个完美的广场,但我尽可能地靠近,只是一个条子。

  1. 突出显示要格式化的方块。
  2. 转到格式选项卡。
  3. 将列宽格式设置为12.43
  4. 然后将单元格高度格式化为75.00。

使用尺子我发现我只有7英寸和10英寸的长度。希望这可以帮助。


1

我使用比率为5-1 / 3,行高与列宽。

例如,分别为53.33行,列宽10或106.66和20,您将足够接近政府工作。


...对我而言.ColumnWidth = .RowHeight / 7,仅仅使用比率的想法就是+1。
ashleedawg

1

我相信这是最简单的解决方案......

此方法利用Excel标尺,因此更易于理解/更容易和准确的行和列尺寸。

  • 选择功能区上的“ 查看
  • 在工作簿视图中选择页面布局
  • 如果未显示标尺,请选择“显示”组中的“标尺”复选框。
  • 点击全选按钮(名称书下方的左上角)
  • 右键单击一行,选择尺寸调整选项,然后输入所需的测量值。右键单击并重复一个列。

真的是这样的。结果是看起来像视觉上完美的方块。甚至可以选择在“Excel选项”的“高级”选项卡的“显示”组中更改度量单位。希望这将是最有帮助的!:)


0

单击并拖动行之间的边框。要一次调整多个列/行的大小,请选择它们,右键单击并单击“行高......”并将其设置为与行宽相同的高度。


右键菜单中没有“行高”。
Lazer 2010年

0
  • 选择列(单击A列,然后按住shift并单击另一端)

  • 右键单击其中一列,单击“ 列宽”,然后输入新值。

  • 您可以对一行执行相同的操作,然后单击“ 行高”以获取的高度。


0

如果要使行和列看起来是正方形,请选择要制作正方形的所有单元格,并将行的高度更改为28.8并将列宽度更改为4.56。


0

简单的解决方案

  • 选择所有单元格
  • 将列拖动到所需的像素大小(在拖动和调整列大小时,您将在点和像素中看到列大小)
  • 重复行(选择相同的像素数)
  • 这应该可以在工作表中为您提供完美的方形单元格

0

Excel 2010在页面布局视图中调整,然后切换回普通视图不起作用。我能够通过使用绘图工具进行验证,并在普通视图中制作完美的正方形。这是制作任意大小正方形的最简单方法。

列宽= 2.71行高= 18。


究竟,你的答案是什么?“从绘图工具栏中插入一个方块”?答案是在四年前提出的。“将你的细胞大小调整为2.71×18”?这是一种“制作任何尺寸的广场”的方式?“将细胞大小调整 2.71×18”?这类似于第四个答案,表明特定的数字比率。
斯科特

0
  • 全选 - Ctrl + A.
  • 右键单击任何列标题,然后选择“列宽”
  • 输入值= 4>确定
  • 在那里你会看到所有细胞都是完美的方形。

1
不能在我的显示器上使用我的Excel版本和我的设置。列宽的特定值保证在您的确切设置上有效,并且在没有明确说明这是什么的情况下作为答案是无用的。请阅读其他答案,找出原因。
robinCTS

0

这很巧妙地使用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

刚刚意识到JackRni做得更干净了。
最高
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.