excel如何行高设定成同样的(一行一行地调整行高太麻烦了)
常在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文档
原创不易,转载请保留出处。
,
免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com