excel如何行高设定成同样的(一行一行地调整行高太麻烦了)

常在Excel走,哪有不调行高?

如果是碰到这种情况:

excel如何行高设定成同样的(一行一行地调整行高太麻烦了)(1)

处女座的你是否会关掉、删了它?

其他星座呢?嘴上笑嘻嘻,心里MMP地也要忍痛把格式调好...

excel如何行高设定成同样的(一行一行地调整行高太麻烦了)(2)

接下来就教大家怎么简单又快速地调整行高吧。

1、自动调整行高

Excel的单元格有“自动调整行高”和“自动调整列宽”的模式,方法就是把鼠标放在需要调整的单元列(行)边上,当鼠标变成【十】时,双击,就可以了。

excel如何行高设定成同样的(一行一行地调整行高太麻烦了)(3)

2、批量调整

上面的方法只适用于不含【合并单元格】的表格,如果表格中包含了【合并单元格】,则无法通过【自动调整】来实现

excel如何行高设定成同样的(一行一行地调整行高太麻烦了)(4)

如上图那样,根本【自动】不了。。。

所以还是只能用【宏】了,代码如下:

Sub My_MergeCell_AutoHeight()

Dim rh As Single, mw As Single

Dim rng As Range, rrng As Range, n1%, n2%

Dim aw As Single, rh1 As Single

Dim m$, n$, k

Dim ir1, ir2, ic1, ic2

Dim mySheet As Worksheet

Dim selectedA As Range

Dim wrkSheet As Worksheet

Application.ScreenUpdating = False

Set mySheet = ActiveSheet

On Error Resume Next

Err.Number = 0

Set selectedA = Application.Intersect(ActiveWindow.RangeSelection, mySheet.UsedRange) '返回重叠range

selectedA.Activate

If Err.Number <> 0 Then

g = MsgBox("请先选择需要'最合适行高'的行!", vbInformation)

Return

End If

selectedA.EntireRow.AutoFit

Set wrkSheet = ActiveWorkbook.Worksheets.Add '创建个临时sheet来折腾

For Each rrng In selectedA

If rrng.Address <> rrng.MergeArea.Address Then '找出合并单元格

If rrng.Address = rrng.MergeArea.Item(1).Address Then '合并单元格第一格与地址对应

'If (Application.Intersect(selectedA, rrng).Address <> rrng.Address) Then

' GoTo gotoNext

'End If

Dim tempCell As Range

Dim width As Double

Dim tempcol

width = 0

For Each tempcol In rrng.MergeArea.Columns

width = width tempcol.ColumnWidth

Next

wrkSheet.Columns(1).WrapText = True

wrkSheet.Columns(1).ColumnWidth = width

wrkSheet.Columns(1).Font.Size = rrng.Font.Size

wrkSheet.Cells(1, 1).Value = rrng.Value

wrkSheet.Activate

'wrkSheet.Cells(1, 1).RowHeight = 0

wrkSheet.Cells(1, 1).EntireRow.Activate

wrkSheet.Cells(1, 1).EntireRow.AutoFit

mySheet.Activate

rrng.Activate

If (rrng.RowHeight < wrkSheet.Cells(1, 1).RowHeight) Then

Dim tempHeight As Double

Dim tempCount As Integer

Dim addHeightRow

tempHeight = wrkSheet.Cells(1, 1).RowHeight 10 '自动调整后行高 10

tempCount = rrng.MergeArea.Rows.Count '多行合并单元格的行数

For Each addHeightRow In rrng.MergeArea.Rows '选区中每个row赋值

If (addHeightRow.RowHeight < tempHeight / tempCount) Then

addHeightRow.RowHeight = tempHeight / tempCount

End If

tempHeight = tempHeight - addHeightRow.RowHeight

tempCount = tempCount - 1

Next

End If

End If

Else

If rrng.WrapText = True Then '非合并单元格、自动换行

rrng.RowHeight = rrng.RowHeight 3 '非合并行 3,以适应打印

End If

End If

Next

Application.DisplayAlerts = False '删除工作表警告提示

wrkSheet.Delete

Application.DisplayAlerts = True

Application.ScreenUpdating = True

End Sub

效果如下:

excel如何行高设定成同样的(一行一行地调整行高太麻烦了)(5)

3、添加到按钮功能

①新建一个空白文档:

excel如何行高设定成同样的(一行一行地调整行高太麻烦了)(6)

②复制上面的宏,粘贴:

excel如何行高设定成同样的(一行一行地调整行高太麻烦了)(7)

③保存成【Excel97-2003加载宏(*.xla)】

excel如何行高设定成同样的(一行一行地调整行高太麻烦了)(8)

这时它的路径会自动变成【C:\Users\Administrator\AppData\Roaming\Microsoft\AddIns】

然后改个容易辨识的名字:

excel如何行高设定成同样的(一行一行地调整行高太麻烦了)(9)

保存。

④在【加载项】里找到它

Excel2007~2016:【开始】-【Excel选项】-【加载项】-【转到】

excel如何行高设定成同样的(一行一行地调整行高太麻烦了)(10)

excel如何行高设定成同样的(一行一行地调整行高太麻烦了)(11)

excel如何行高设定成同样的(一行一行地调整行高太麻烦了)(12)

Excel2013~2016:还可以【开发工具】-【Excel加载项】

excel如何行高设定成同样的(一行一行地调整行高太麻烦了)(13)

excel如何行高设定成同样的(一行一行地调整行高太麻烦了)(14)

⑤添加自定义按钮

excel如何行高设定成同样的(一行一行地调整行高太麻烦了)(15)

excel如何行高设定成同样的(一行一行地调整行高太麻烦了)(16)

excel如何行高设定成同样的(一行一行地调整行高太麻烦了)(17)

excel如何行高设定成同样的(一行一行地调整行高太麻烦了)(18)

以后打开其他表格都会有这个按钮了

文件已经上传网盘,下载后直接放在:

C:\Users\Administrator\AppData\Roaming\Microsoft\AddIns

然后在Excel选择【加载项】即可找到它

在后台回复Excel行高即可获取上述的.xla文档

原创不易,转载请保留出处。

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页