ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[接龙...]部分程序代码注释,目录更新20051222

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2005-10-6 19:35 | 显示全部楼层
正想學習 太詳細了 感謝Long_III 大大啦

TA的精华主题

TA的得分主题

发表于 2005-10-6 21:39 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
太感谢了。Long_III 。

TA的精华主题

TA的得分主题

发表于 2005-10-7 23:00 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2005-10-8 22:23 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2005-10-10 09:16 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
以下是引用Long_III在2005-8-5 15:12:38的发言:

我的意思是大家都来这样做,plxmm,你也弄两个上来啊

2、第二个,关于工资表的表头增减,代码有点长,就直接在后面注释了,不复制代码了

没啊?在哪?为什么看不见的呢?[em04]

TA的精华主题

TA的得分主题

发表于 2005-10-10 15:12 | 显示全部楼层

给龙3申请加威望!!!!!

棒到无以复加的地步了。

TA的精华主题

TA的得分主题

发表于 2005-10-10 16:55 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
强力要求给龙3老师加精!

TA的精华主题

TA的得分主题

发表于 2005-10-10 19:07 | 显示全部楼层

太棒了,这主意太好了.谢谢楼主

TA的精华主题

TA的得分主题

 楼主| 发表于 2005-10-12 12:44 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

52、删除多余的图形。在操作中,经常会出现隐形的小文本框,产生的原因不明,如果你打开一个表需要1分钟以上,就得考虑这些框框了,按Ctrl+G》定位条件》对象,确定,按tab键查看

下面的代码中还处理了一个问题,就是几个矩形框叠在一起时,取最上面的一个矩形框,请看代码(单独附件中所示的格式) gqAxPNfK.rar (71.46 KB, 下载次数: 123)

Private Sub CommandButton1_Click() Dim sht As Worksheet Dim p As Shape, o%, k%, k1% Dim m As Long, aa As Double aa = Timer '记录当前时间 Application.ScreenUpdating = False '关闭屏幕更新,加快代码运行 For Each sht In Sheets '在每个表里循环 o = 0: k = 0: k1 = 0 '初始化值 If sht.Name <> Me.Name Then '假如表的名称不等于总表的话 For Each p In sht.Shapes '在所有图形里循环 Select Case Left(p.Name, 3) '取图形前3个字符 Case "Pic" '表示图片类型,如果等于图片 o = o + 1: If o > 1 Then p.Delete: m = m + 1 '则保留一个,其他删除,对应A1单元格里的标志 Case "Tex" '如果等于文本框,隐形的那种,很烦躁的,直接删除 p.Delete: m = m + 1 Case "Lin" '如果等于直线,直接删除 p.Delete: m = m + 1 Case "Rec" '如果等于矩形,就是表里有文字的东东,要保留最上面的一个,用k记录总个数 k = k + 1 End Select Next For Each p In sht.Shapes '再次循环,删除除最后一个的其他矩形 If Left(p.Name, 3) = "Rec" Then k1 = k1 + 1 '如果它不是最后一个,就删除 If k1 < k Then p.Delete: m = m + 1 End If Next End If Next Application.ScreenUpdating = True MsgBox "共删除shape" & m & "个,耗时:=" & Format(Timer - aa, "0.00") & "秒" End Sub

TA的精华主题

TA的得分主题

 楼主| 发表于 2005-10-13 12:34 | 显示全部楼层

53、设置图形的颜色与单元格颜色一致。通过转换颜色成GRB格式做的, 91rCrrLu.rar (37.66 KB, 下载次数: 142)

,代码:

Private Sub CommandButton1_Click() Dim R%, G%, B% Dim p As Shape Dim rng As Range For Each p In Me.Shapes '在图形里做一个循环 If InStr(1, p.Name, "Freeform") Then '假设图形名称里保护Freeform时(任意多边形) Set rng = Range("i:i").Find(p.AlternativeText, lookat:=xlWhole) '查找任意多边形的web选项里的值,是否在I列有 If Not rng Is Nothing Then '如果找到的话,则 Set_RGB rng.Offset(0, 3).Interior.Color, R, G, B '直接用列表框里的颜色值做,好像不可以,只好转换成RGB格式的了 p.Fill.ForeColor.RGB = RGB(R, G, B) '自选图形的前景色,可以用列表里颜色对应的值,也可以用RGB格式的颜色值 End If End If Next End Sub

Sub Set_RGB(ByVal myColor As Long, ByRef R%, ByRef G%, ByRef B%) '转换子过程,把长整型的转为RGB格式的数据 R = myColor Mod 256 G = myColor \ 256 Mod 256 '这样固定的东西可以直接引用,我也是down的别人的 B = myColor \ 256 \ 256 End Sub

【附】本例好像可以不用RGB来转换,直接可以这样赋值p.Fill.ForeColor.RGB = rng.Offset(0, 3).Interior.Color就可以了

[此贴子已经被作者于2005-10-20 8:55:43编辑过]
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-23 12:16 , Processed in 0.036404 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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