美文网首页
【Excel】一行一行地调整行高太麻烦了。。。

【Excel】一行一行地调整行高太麻烦了。。。

作者: 冷漠热情 | 来源:发表于2018-01-12 13:01 被阅读0次

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

如果是碰到这种情况:

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

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

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

1、自动调整行高

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

2、批量调整

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

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

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

 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

效果如下:

3、添加到按钮功能

①新建一个空白文档:

②复制上面的宏,粘贴:

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

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

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

保存。

④在【加载项】里找到它

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

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

⑤添加自定义按钮

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

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

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

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

关注公众号,在后台回复Excel行高即可获取上述的.xla文档

微信搜索公众号@圣创杂学堂,即可获取每天更新

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

相关文章

  • 【Excel】一行一行地调整行高太麻烦了。。。

    常在Excel走,哪有不调行高? 如果是碰到这种情况: 处女座的你是否会关掉、删了它? 其他星座呢?嘴上笑嘻嘻,心...

  • css-display

    块级元素 1.0 单独占一行 2.0 可以设置宽高 3.0 如果不设置宽高,宽度默认是一整行,高度默认由内容来决定...

  • Pycharm的部分使用方法

    快捷键: shift+enter 换行 ctrl+y 删除整行 ctrl+d 复制整行到下一行 ctrl+/ 注释...

  • HTML知识点小结

    HTML知识点小结~ 标签类型 块: 独自占一行,支持所以样式,不设宽度将撑满整行 内嵌: 可以在一行并列显示,不...

  • 安全感与自由,究竟那个更重要?

    一位曾身居企业高管的长辈对我说:“年轻人不要太浮躁了,做事要踏实,要干一行,爱一行,专一行!”他拿自己的经历和我说...

  • 【现学现忘&Shell编程】— 34.AWK编程之awk内置变量

    1、awk内置变量 awk内置变量作用$0代表目前awk所读入的整行数据。我们已知awk是一行一行读入数据的,$0...

  • Python S6-3 Pandas 数据处理

    header=None 不用Excel 表格的第一行作为header。重新命名header,此处采用姓名,年龄,地...

  • Excel学习 | 如何高亮当前行

    有时候在使用Excel查看数据的时候,由于数据太多,列数太长,相清晰地看清楚一行的数据比较费劲,如果可以让当前行高...

  • css 1

    CSS中的块级元素与行内元素 块级元素特性: 1.占据一整行,总是重起一行并且后面的元素也必须另起一行显示。 2....

  • 12.Flex布局

    display: flex;会占用一整行,后续的div会在下一行display: inline-flex;不会占用...

网友评论

      本文标题:【Excel】一行一行地调整行高太麻烦了。。。

      本文链接:https://www.haomeiwen.com/subject/wgxfoxtx.html