Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 3271|回复: 10

[已解决]怎么把图中显示不出来的单元格自动拉开成匹配的单元格大小

[复制链接]
发表于 2016-8-29 16:35 | 显示全部楼层 |阅读模式
把图中显示不出来的单元格自动拉开成匹配的单元格大小,最好是可以设置宏语言,多好类似的单元格要调整,感谢大神~
最佳答案
2016-8-30 17:44
fefwff324.gif
03里单元格中的字符长度超过255会显#.rar (7.96 KB, 下载次数: 4)
agajojo_1472459096434_55.png
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
 楼主| 发表于 2016-8-29 16:41 | 显示全部楼层
图中显示不出来文字类似“经营范围”的单元格自动拉开成匹配的单元格大小
回复

使用道具 举报

发表于 2016-8-29 17:26 | 显示全部楼层
回复

使用道具 举报

 楼主| 发表于 2016-8-30 10:48 | 显示全部楼层
上传附件~~

Book2.rar

10.71 KB, 下载次数: 3

回复

使用道具 举报

发表于 2016-8-30 11:44 | 显示全部楼层
jojolam08 发表于 2016-8-30 10:48
上传附件~~

Sub test()
    Dim x As Range
    Application.ScreenUpdating = False
    Sheets(1).UsedRange.EntireRow.AutoFit
    For Each x In Sheets(1).UsedRange
        If x <> "" And x.MergeCells And x.Address = x.MergeArea.Cells(1).Address Then x.RowHeight = getHeight(x)
    Next
End Sub

Function getHeight(x As Range)
    With Sheets(2)
        .Cells.Delete
        x.MergeArea.Copy .[a1]
        .[a1].UnMerge
        .[a1].ColumnWidth = 8.38 * x.MergeArea.Columns.Count
        .Rows("1:1").EntireRow.AutoFit
        getHeight = .[a1].Height
    End With
End Function
3.rar (15.46 KB, 下载次数: 8)
回复

使用道具 举报

 楼主| 发表于 2016-8-30 11:49 | 显示全部楼层
爱疯 发表于 2016-8-30 11:44
Sub test()
    Dim x As Range
    Application.ScreenUpdating = False

经营范围这个地方没有变化
回复

使用道具 举报

发表于 2016-8-30 11:53 | 显示全部楼层
jojolam08 发表于 2016-8-30 11:49
经营范围这个地方没有变化

是哪个单元格没有变化呀?

下班了,只有下午再看了。。。。。。。



回复

使用道具 举报

 楼主| 发表于 2016-8-30 12:04 | 显示全部楼层
爱疯 发表于 2016-8-30 11:53
是哪个单元格没有变化呀?

下班了,只有下午再看了。。。。。。。

C9和C20~感谢大神~
回复

使用道具 举报

发表于 2016-8-30 17:39 | 显示全部楼层
Sub test()
    Dim rng As Range
    Dim maxHeight As Integer
    Dim i As Integer
    Dim j As Integer
    Dim A

    '1)辅助区域
    Set rng = Sheets(2).[a1]
    rng.NumberFormat = "@"
    rng.WrapText = True

    '2)非合并单元格,也自适应行高
    Application.ScreenUpdating = False
    Sheets(1).UsedRange.EntireRow.AutoFit
    Sheets(1).UsedRange.ColumnWidth = 8.38

    '3)合并单元格
    A = Sheets(1).UsedRange
    For i = 1 To UBound(A)
        maxHeight = 0    '每行中,合格单元格最大的行高值
        For j = 1 To UBound(A, 2)
            If Cells(i, j) <> "" And Cells(i, j).MergeCells And Cells(i, j).Address = Cells(i, j).MergeArea.Cells(1).Address Then
'                Debug.Print Cells(i, j).Address, Cells(i, j).MergeArea.Width, Cells(i, j).Value
                '辅助单元格的列宽=合并单元格所在列宽
                rng.ColumnWidth = 8.38 * Cells(i, j).MergeArea.Columns.Count
                '放入值,以便自行改变行高
                rng.Value = Cells(i, j).Value
                '如果有了更大的行高,就更新maxHeight
                If rng.Height > maxHeight Then maxHeight = rng.Height
                '设置行高
                Cells(i, j).RowHeight = maxHeight
            End If
        Next j
    Next i
End Sub

4.rar (15.98 KB, 下载次数: 3)
回复

使用道具 举报

发表于 2016-8-30 17:44 | 显示全部楼层    本楼为最佳答案   
fefwff324.gif
03里单元格中的字符长度超过255会显#.rar (7.96 KB, 下载次数: 4)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-8 08:38 , Processed in 0.357795 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表