Excel 如何在合并单元格里自动调整行高

 我来答
goldcoast118
高粉答主

2014-11-05 · 醉心答题,欢迎关注
知道顶级答主
回答量:4.6万
采纳率:80%
帮助的人:1.7亿
展开全部
  自动调整合并单元格行高原型
  
  原理是:
  
  因为独立单元格设置了自动换行后,高度会自动变化,利用这个特点,将合并单元格的内容复制到一个独
  立单元格,并将这个单元格格式设置成自动换行,且其宽度设置为合并区域宽度
  (
  合并区域宽度
  =
  合并区域中各
  列宽度之和
  )
  ,再将此时独立单元格的行高值设置到合并区域所在的行即可。
  
  运行条件:创建一个名字为
  temp
  的
  Sheet
  表单
  ,
  将下内容粘贴到
  Excel
  模块中。
  
  VBA
  程序如下:
  
  Sub main()
  MergeCellAutoFit "sheet1", 6, 2
  End Sub
  
  Sub MergeCellAutoFit(sSheet As String, mRow As Integer, mCol As Integer)
  Dim mWidth As Double
  Dim mSt, mEd As Integer
  If Sheets(sSheet).Cells(mRow, mCol).MergeCells Then
  mSt = Sheets(sSheet).Cells(mRow, mCol).MergeArea.Column
  mEd = mSt + Sheets(sSheet).Cells(mRow, mCol).MergeArea.Columns.Count() - 1
  For i = mSt To mEd
  mWidth = mWidth + Sheets(sSheet).Columns(i).ColumnWidth
  Next i
  Sheets("temp").Columns(1).ColumnWidth = mWidth + (mEd - mSt) * 0.6
  With Sheets("temp").Range("A1")
  .HorizontalAlignment = xlGeneral
  .VerticalAlignment = xlTop
  .WrapText = True
  .Orientation = 0
  .AddIndent = False
  .IndentLevel = 0
  .ShrinkToFit = False
  .ReadingOrder = xlContext
  .MergeCells = False
  End With
  Sheets(sSheet).Cells(mRow, mCol).Copy
  Sheets("temp").Range("A1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
  SkipBlanks:=False, Transpose:=False
  Sheets(sSheet).Rows(mRow).RowHeight = Sheets("temp").Rows(1).RowHeight
  Sheets("temp").Columns(1).Delete

  Else
  MsgBox "
  不是合并单元格!
  "
  End If
  End Sub
冷风殿
2014-11-01 · TA获得超过528个赞
知道小有建树答主
回答量:798
采纳率:100%
帮助的人:173万
展开全部
我还真没用过这功能!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式