ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: cherga

[求助] 如何通过VBA让用公式提取的多个姓名按规定排列和换行

[复制链接]

TA的精华主题

TA的得分主题

发表于 2018-12-11 18:47 | 显示全部楼层
本帖最后由 tptopy 于 2018-12-11 19:41 编辑

既然用自定义函数,就尽量不用工作表函数了,将你的contxt函数作了修改,供参考。单元格内排版问题比较复杂,可简单处理,将单元设置成自动换行就行了。只是三个字名字和两个字名字分两行显示。还有,困为不同项目的表格格式不一样,所以不同单元格里contxt的参数有区别

XX学校体检数据、异常反馈记录表及班级打印 供参考.rar

525.75 KB, 下载次数: 11

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-12-11 20:03 | 显示全部楼层
tptopy 发表于 2018-12-11 18:47
既然用自定义函数,就尽量不用工作表函数了,将你的contxt函数作了修改,供参考。单元格内排版问题比较复杂 ...

太感谢了  原本还想只能用最土的办法来解决。实在是解决我一大难题 原谅我东拼西凑集成的Excel
只是最后一句  因为不同项目的表格格式不一样,所以不同单元格里contxt的参数有区别
是什么意思。可否通俗简单的跟我讲下

TA的精华主题

TA的得分主题

发表于 2018-12-11 20:22 | 显示全部楼层
本帖最后由 tptopy 于 2018-12-11 20:26 编辑
cherga 发表于 2018-12-11 20:03
太感谢了  原本还想只能用最土的办法来解决。实在是解决我一大难题 原谅我东拼西凑集成的Excel
只是最 ...

你注意一下模块里contxt的四个参数。contxt(Class,Sex,Subject,Level),即这个函数需要给它传递班级,性别,项目,程度这四个参数,其中项目在原表中的标题中。你的统计表格里面“视力不良”属于项目,但“超重”是程度而不是项目,它的项目是“肥胖”,“龋齿”是项目,它的程度是用0,1表示的。肝功能那一项在原表中是28列,但这一列没有标题(你原表中这一的标题是合并单元格,它是算第27列),所以在程序中加一个
if j = 0 then
j = 28
end if
如果在标题中找不到项目,那就是肝功能了,
你再注意一下统计表格中每个单元格里contxt的参数,就能理解了

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-12-11 20:30 来自手机 | 显示全部楼层
tptopy 发表于 2018-12-11 20:22
你注意一下模块里contxt的四个参数。contxt(Class,Sex,Subject,Level),即这个函数需要给它传递班级,性别 ...

你这么一说,就明白了。
换行那个也很好用,但是好像会顶出单元格?只能通过增加行高了?!

TA的精华主题

TA的得分主题

发表于 2018-12-11 20:33 | 显示全部楼层
cherga 发表于 2018-12-11 20:30
你这么一说,就明白了。
换行那个也很好用,但是好像会顶出单元格?只能通过增加行高了?!

是地,行高不好控制,如果那样精确排版就太复杂了

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-12-11 20:37 来自手机 | 显示全部楼层
tptopy 发表于 2018-12-11 20:33
是地,行高不好控制,如果那样精确排版就太复杂了

嗯嗯,这个还是可以操作的,很是感谢,以后有的代码还望帮忙指点下。

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-12-12 09:02 | 显示全部楼层
tptopy 发表于 2018-12-11 18:47
既然用自定义函数,就尽量不用工作表函数了,将你的contxt函数作了修改,供参考。单元格内排版问题比较复杂 ...

您好:
还有两个问题,一旦我把数据替换成别的学校,班级会变动,这就导致我保存后再打开就会出现有不可读取的数据,这如何解决。代码在打印工作表内。感觉可能是代码包含不重复下拉菜单和提取相应班级信息导致冲突,保存后再打开就会提示,班级那边就没有下拉菜单。要再点一下,再重新出现。保存还要覆盖。

另外一个问题是,之前有几个公式填进去VBA进行运算(也是您提供的),但是如果只有一行数据,他会一直运算。如何控制如果下一行都是空白就会停止运算。代码在模块2

TA的精华主题

TA的得分主题

发表于 2018-12-12 15:54 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
1.如果将体检数据里的数据换成另一个学校,点击“打印”表的O2单元格,“打印”表里M2单元格和记录表里的F2单元内容就全改变了。
2.填充公式修改了一下,确保不空转
3.记录表单元格里的姓名排版改进了一下,事先必须先将单元的宽度调整为正好能放6个3个字名字的宽度,至于单元格高度,记得好像有自动行高,我也不知道在哪儿设置了,你可以自己查找一下。

XX学校体检数据、异常反馈记录表及班级打印 供参考2.rar

523.45 KB, 下载次数: 2

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-12-12 16:49 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
tptopy 发表于 2018-12-12 15:54
1.如果将体检数据里的数据换成另一个学校,点击“打印”表的O2单元格,“打印”表里M2单元格和记录表里的F2 ...

对于第一条 我都有照做,就是把所有数据换掉后,保存再点进去就会出现这样情况。打印下拉菜单消失,再点宏可以刷出来,但是保存后再打开又是提示这个内容。提示这个其实也没啥的,就是每次关闭要再覆盖保存。
360截图16511001274716.png
360截图16190821556076.png
360截图16261004296238.png

XX学校体检数据、异常反馈记录表及班级打印 供参考2.zip

535.67 KB, 下载次数: 3

TA的精华主题

TA的得分主题

发表于 2018-12-12 19:49 | 显示全部楼层
为什么会出现这种提示,我真的不会解释。我思考了一下,可以把班级列表的重新设置和打印表里的数据提取分开执行,也就是省去了点击“打印”的O2,如能做好,再发给你
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-4-16 12:43 , Processed in 0.048352 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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