ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 怎样批量改一个表里的按钮的caption

[复制链接]

TA的精华主题

TA的得分主题

发表于 2009-7-28 09:44 | 显示全部楼层

回复 19楼 laoyebin 的帖子

Sub test()
    Dim cbn As OLEObject
    Dim cmd As Control
    For Each cbn In Sheet1.OLEObjects
         If Left(cbn.Object.Caption, 7) = "Command" Then cbn.Object.Caption = "CB2"
    Next cbn
    For Each cmd In UserForm1.Controls
        If Left(cmd.Name, 7) = "Command" Then cmd.Caption = "CB2"
    Next cmd
    UserForm1.Show
End Sub

TA的精华主题

TA的得分主题

发表于 2009-7-28 09:51 | 显示全部楼层
问题的关键:
你是要修改工作表中按钮的caption还是窗体中按钮的Caption

两者的方法是不一样的

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-7-28 09:55 | 显示全部楼层
原帖由 mineshine 于 2009-7-28 09:44 发表
Sub test()
    Dim cbn As OLEObject
    Dim cmd As Control
    For Each cbn In Sheet1.OLEObjects
         If Left(cbn.Object.Caption, 7) = "Command" Then cbn.Object.Caption = "CB2"
    Next cbn
...



是的呀,userform里面的cmd表面上是改了,但实际是并没有改变实际的caption
我的问题就在于此,怎样才能在一个模块的SUB过程里实际改变userform的cmd的caption属性

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-7-28 09:56 | 显示全部楼层
原帖由 zldccmx 于 2009-7-28 09:51 发表
问题的关键:
你是要修改工作表中按钮的caption还是窗体中按钮的Caption

两者的方法是不一样的



工作表的按钮的问题解决了
现在主要是问userform里的按钮caption

TA的精华主题

TA的得分主题

发表于 2009-7-28 10:03 | 显示全部楼层
一个按钮两种功能,两个caption,这个简单,我以前做过一个按钮就实现了这个功能哈
制作userform会使文件增大,没用过。

旁边看着高手讨论,学习下

TA的精华主题

TA的得分主题

发表于 2009-7-28 11:05 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
原帖由 laoyebin 于 2009-7-28 09:56 发表



工作表的按钮的问题解决了
现在主要是问userform里的按钮caption

已经设计好了的窗体,可以动态修改其属性,但是一旦窗体关闭之后就会恢复到原始状态,也就是说,在代码中很难真正修改已经设计好了的窗体及其控件属性
估计唯一的办法是用代码设计窗体、设计控件。

TA的精华主题

TA的得分主题

发表于 2009-7-28 11:11 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2009-7-28 11:13 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
      '撰写:老朽
      '网址:http://Club.ExcelHome.net
      '日期:2009-7-28 上午 11:12:12

Private Sub UserForm_Initialize()
    Dim
cb As Object
    For Each cb In Me.Controls
        If
cb.Name Like "Command*" Then cb.Caption = Replace(cb.Name, "CommandButton", "按钮")
    Next

End Sub



这段代码,只能实现修改在运行过程中窗体控件的属性,一旦窗体关闭之后,其属性就恢复到原始设计状态。

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-7-28 11:19 | 显示全部楼层
原帖由 zldccmx 于 2009-7-28 11:13 发表
      '撰写:老朽
      '网址:http://Club.ExcelHome.net
      '日期:2009-7-28 上午 11:12:12
Private Sub UserForm_Initialize()
    Dim cb As Object
    For Each cb In Me.Controls
        If cb ...



这个问题13楼的代码已经可以解决了
我是想永久改变其caption,而不是加载userform时候改变,卸载后又变回原样

TA的精华主题

TA的得分主题

发表于 2009-11-23 11:38 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
在设计时定义好名称及个属性值就不用这么麻烦了。
一定要改的话,用VBE编程的方法来操作,就是俗称的用代码写代码。搜搜 VBE编程,Qee用的精华贴。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-9-28 07:19 , Processed in 0.035318 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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