ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
12
返回列表 发新帖
楼主: tds828

[求助] 关于批量增加Excel表格行高的VBA代码修改求助

[复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-6-25 15:38 | 显示全部楼层
quqiyuan 发表于 2024-6-22 17:25
检查过,有增加行高。。。
Sub 批量AutoFitAll_1()
    Application.ScreenUpdating = False

能不能麻烦你一下,就是我想把表格的打印区域设置为有有效内容的页面,无内容的其他页面不打印,也就是放在调整行高后进行打印区域设置,

TA的精华主题

TA的得分主题

发表于 2024-6-25 19:49 | 显示全部楼层
tds828 发表于 2024-6-25 15:38
能不能麻烦你一下,就是我想把表格的打印区域设置为有有效内容的页面,无内容的其他页面不打印,也就是放 ...

供参考。。。

image.png
打印区域
image.png

批量增加行高测试.zip

29.52 KB, 下载次数: 4

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-7-2 16:14 | 显示全部楼层
本帖最后由 tds828 于 2024-7-2 16:22 编辑

感谢楼上各位的帮忙,基本上满足需要了

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-7-2 16:24 | 显示全部楼层
本帖最后由 tds828 于 2024-7-2 16:25 编辑

我可能没有表达清楚我的意思,我的意思是有有效内容的那个页面设置为打印区域,类似于图中所表现的情况,不是有有效内容的行设置为打印区域。 image.png

TA的精华主题

TA的得分主题

发表于 2024-7-2 18:56 | 显示全部楼层
tds828 发表于 2024-7-2 16:24
我可能没有表达清楚我的意思,我的意思是有有效内容的那个页面设置为打印区域,类似于图中所表现的情况, ...

你这样不好设定打印区域,如果就只有一页可能好点,如果好多页,不好弄。

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-7-5 15:51 | 显示全部楼层
quqiyuan 发表于 2024-7-2 18:56
你这样不好设定打印区域,如果就只有一页可能好点,如果好多页,不好弄。

那好吧,谢谢大神的帮助,已经做的非常满意了,我再从模板的角度去考虑一下打印区域设置的问题,继续给你加分。

TA的精华主题

TA的得分主题

发表于 2024-7-5 15:56 | 显示全部楼层
tds828 发表于 2024-7-5 15:51
那好吧,谢谢大神的帮助,已经做的非常满意了,我再从模板的角度去考虑一下打印区域设置的问题,继续给你 ...

其实昨晚还想了一下你这个需求,但是没想到你还需要,我马上处理一下,想法是最后一行的区域总共有多少打印页面,然后循环在后面加行数,如果超过原有页面,停止,然后提取加的行数,就可以解决这个问题,可能啰嗦点,但是我也只是想到这个方法。马上去改一下代码。。。

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2024-7-5 16:09 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
改了下,希望是你需要,后面会增加空白行。。。
image.png
image.png

批量增加行高测试.zip

31.5 KB, 下载次数: 5

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2024-7-5 16:13 | 显示全部楼层
代码如下。。。


Sub 批量AutoFitAll_1()
    Application.ScreenUpdating = False
    Dim sh As String
    Dim MyPath, MyName, AWbName
    Dim mysheet As Worksheet
    MyPath = ThisWorkbook.Path
    MyName = Dir(MyPath & "\" & "*.xls*")
    AWbName = ThisWorkbook.Name
    Num = 0
Do While MyName <> ""
    If MyName <> AWbName Then
        Set wb = Workbooks.Open(MyPath & "\" & MyName)
        Num = Num + 1
        For Each mysheet In wb.Worksheets
            With mysheet
                For i = 1 To .Cells(.Rows.Count, 1).End(3).Row                    '.UsedRange.Rows.Count,由于usedrange下面没有用的行过多,改用了以第一列有数据为准,仅供参考
                    If Application.WorksheetFunction.CountA(.Rows(i)) > 0 Then
                        .Rows(i).RowHeight = .Rows(i).RowHeight + 4
                    End If
                Next i
                r = .Cells(.Rows.Count, 1).End(3).Row
                .PageSetup.PrintArea = "$A$1:$H$" & r                               '以A列有数据为最后的行,H列区域为打印的区域
                x = .PageSetup.Pages.Count                              'excel工作表打印的总页数
                For i = 1 To 100                                         '最后一页填充满工作表,所以需要一行一行尝试,不超过原来的总页数即可
                    .PageSetup.PrintArea = "$A$1:$H$" & r + i
                    y = .PageSetup.Pages.Count
                    If y > x Then Exit For
                Next
                .PageSetup.PrintArea = "$A$1:$H$" & r + i - 1
            End With
            wb.Save
        Next mysheet
        WbN = WbN & Chr(13) & wb.Name
        wb.Close False
    End If
    MyName = Dir
Loop
    MsgBox "共调整" & Num & "个工作薄下全部工作表的行高和列宽。如下:" & Chr(13) & WbN, vbInformation, "提示"
    Application.ScreenUpdating = True
End Sub

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-7-5 18:09 | 显示全部楼层
quqiyuan 发表于 2024-7-5 16:13
代码如下。。。

非常感谢,完全符合要求了,这样我的工作效率就又提高了,可以抽空摸鱼了。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-17 23:53 , Processed in 0.041384 second(s), 17 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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