网站首页 > 博客文章 正文
遇到的实际问题:
这个问题,是在我遇到一些明细表的时候,经常会将不需要的字段隐藏,或者组合起来,方便查看重要数据,但是每次都要手动去右键——>隐藏这个操作,而且需要隐藏的列比较多,还是分开的,特别麻烦所以我写了这个代码,来自动完成。
我的这些代码均可结合其他的常用代码使用,此篇我就介绍一下【_3】和【_1】的结合使用。
图示问题:
自动组合分级代码
Sub 自动分级组合()
Dim w1, sh1, folder, address, address2, i, i2, i3, ed, ed1, ed2, ed3, ed4, arr1, arr2, e, f
Set ed1 = Range("A" & Rows.Count).End(xlUp)
ed = ed1.Row
ed2 = Range("A1").End(xlToRight).Column
For i = 1 To ed2
Arr = Array("公司名称 ", "账薄 ", "参考段代码 ", "参考段说明 ", "往来代码 ", "往来说明 ", "备用段1 ", _
"备用段1描述 ", "备用段2 ", "备用段2描述 ", "现金流附表项目", "凭证来源 ", "凭证类别 ", "批名 ", _
"日记帐名称 ", "创建日期 ", "行号 ", "币种 ", "本位币金额借项 ", "本位币金额贷项 ", _
"原币金额借项 ", "原币金额贷项 ", "过帐状态 ", "冲销期间 ", "冲销状态")
'array括号里还可以增加其他需要组合的内容
If IsError(Application.Match(Cells(1, i), Arr, 0)) Then
1
Else
Columns(i).Group
End If
Next
ActiveSheet.Outline.ShowLevels RowLevels:=0, ColumnLevels:=1
Cells(1, 1).Select
End Sub
说明一下:
- 代码定义了很多变量,因为这串代码还有其他的东西,但是没有放上来全,大家可以不用管Dim后的变量,代码正常使用即可
- 【If IsError(Application.Match(Cells(1, i), Arr, 0)) Then 1】,这个1是用来站位的,大家知道用法即可哈,不用理语法。
- 【Arr = Array(...)】这个括号里的可以自己重新填一下,修改引号内的内容即可,这里本来可以作为动态数组,由于需要分享出来,所以就改为了手动输入的,方便大家自定义。
代码作用图示:
我们能看到,这里分级组合的功能已经自动完成了!
但是这个字体还是宋体12号,看起来不是特别好看,那我们可以在点击一下【_1】中的我们补充的自动文本整理功能,将文本整理一下,看起来就舒服多了。
如图:
代码拼接
我们可以把【_1】和【_3】代码拼接一下,实现一步完成操作。
代码如下:
Sub 组合并调整格式()
Dim w1, sh1, folder, address, address2, i, i2, i3, ed, ed1, ed2, ed3, ed4, arr1, arr2, e, f
Set ed1 = Range("A" & Rows.Count).End(xlUp)
ed = ed1.Row
ed2 = Range("A1").End(xlToRight).Column
For i = 1 To ed2
Arr = Array("公司名称 ", "账薄 ", "参考段代码 ", "参考段说明 ", "往来代码 ", "往来说明 ", "备用段1 ", _
"备用段1描述 ", "备用段2 ", "备用段2描述 ", "现金流附表项目", "凭证来源 ", "凭证类别 ", "批名 ", _
"日记帐名称 ", "创建日期 ", "行号 ", "币种 ", "本位币金额借项 ", "本位币金额贷项 ", _
"原币金额借项 ", "原币金额贷项 ", "过帐状态 ", "冲销期间 ", "冲销状态")
'array括号里还可以增加其他需要组合的内容
If IsError(Application.Match(Cells(1, i), Arr, 0)) Then
1
Else
Columns(i).Group
End If
Next
ActiveSheet.Outline.ShowLevels RowLevels:=0, ColumnLevels:=1
'-----------------------------------------------------------------------以上为自动组合代码
ActiveSheet.UsedRange.Select
With Selection.Font
.Name = "微软雅黑"
.Size = 9
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.TintAndShade = 0
.ThemeFont = xlThemeFontNone
End With
Rows("1:1").Select
Selection.Font.Bold = True
If ActiveSheet.AutoFilterMode Then
2
Else
Rows("1:1").AutoFilter
End If
'-----------------------------------------------------------------------以上为文本整理代码
Cells(1, 1).Select
Excel.Application.ScreenUpdating = ture
End Sub
说明一下:
- 在组合的时候需要注意是否两串代码中有重复的变量,有的话,需要调整重复的变量名称(即dim后边的字母或标识)
合并后代码使用的动图如下:
稍微总结一下:
- 实现自动的操作:字体调整、字号调整、首行加筛选、首行加粗、建立组合、显示为1级组合级别,共7个鼠标点击动作。Ps个人觉得还是挺方便的,不用来回点来点去,点一下,整个表看起来都舒服多了!
- 代码是可以拼接的,但是拼接时注意dim后变量是否重复使用了,重复使用的要修改一下
来点个人对VBA的看法
本人财务专业并在财务分析和财务BP搬砖3年,VBA这个我们做到了解基本用法,拿着别人的会用,已经基本足够应付工作了。举个例子,我们会用电脑,但是我们并不了解电脑的生产过程,也不用了解它怎么生产的,我们知道它怎么用就行了。
当然,如果和我一样,有兴趣的可以加深对它的了解,但是也不建议非常系统地学,我知道有大部分同学是从VAB什么时候产生开始学起的。其实我们以实用性为出发点,带着问题去学是最容易也是最快上手的。
比如我觉得每次都要手动点击组合这次演示的文本,效率好像有点低,然后就写串代码出来,让它来解决就行了。实在不会写,再去搜索看看别人的代码及其用法,有没有更简单的方法解决。
结束!
猜你喜欢
- 2025-06-10 32岁女程序员和AI男友的三年骗局 当完美爱情碎成代码片段
- 2025-06-10 Repomix:让代码库完美适配 AI 的打包工具
- 2025-06-10 不升级系统 越狱设备照样完美解决死亡代码
- 2025-06-10 赛博朋克2077代码矩阵完美解密心得
- 2025-06-10 程序员梦见代码崩溃?完美主义在梦里的系统警报
- 2025-06-10 Excel VBA自制日历组件16色可选 完美替代VBA日期控件
- 2025-06-10 彻底告别DeepSeek公式乱码!三步完美转换Word文档代码秒变高清图
- 2025-06-10 VBA常用代码_1、文本格式整理(vba所有代码大全及语法)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)