Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2985|回复: 9

[已解决]按钮问题求助

[复制链接]
发表于 2009-12-16 15:17 | 显示全部楼层 |阅读模式

请各位老师帮助一下,谢谢....

 当按下按钮时,按钮名称变黑色,其它的恢复为红色(初始为红色)

x4QPOeup.rar (6.9 KB, 下载次数: 10)
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2009-12-16 20:38 | 显示全部楼层

GpHvaIIG.rar (10.79 KB, 下载次数: 9)

回复

使用道具 举报

发表于 2009-12-17 22:24 | 显示全部楼层

如何取得按钮的编号?及个数?(假如每次打开工作表时都重新加入按钮.)
回复

使用道具 举报

发表于 2009-12-18 08:30 | 显示全部楼层

Sub 点击()
    Dim R As Long     '参数
    
    Call red
    MsgBox ActiveSheet.Shapes(Application.Caller).DrawingObject.Caption
    ActiveSheet.Shapes(Application.Caller).DrawingObject.Font.ColorIndex = 1
End Sub

Sub red()
    Dim i, str

    For i = 100 To 115
        str = "Button " & i
        ActiveSheet.Shapes(str).Select
        Selection.Font.ColorIndex = 3
    Next i
End Sub
回复

使用道具 举报

 楼主| 发表于 2009-12-18 11:55 | 显示全部楼层

QUOTE:
以下是引用amulee在2009-12-18 8:30:00的发言:
Sub 点击()
    Dim R As
  Long     '参数
    
    Call red
    MsgBox ActiveSheet.Shapes(Application.Caller).DrawingObject.Caption
    ActiveSheet.Shapes(Application.Caller).DrawingObject.Font.ColorIndex = 1
End
  Sub

Sub red()
    Dim i, str

    For i = 100 To 115
        str = "Button " & i
        ActiveSheet.Shapes(str).Select
        Selection.Font.ColorIndex = 3
    Next i
End
  Sub

for i=100 to 115 如何确定每个按钮的编号?因为本工作表每次打开时,都是用另外的VBA加入了不固定个数的按钮并指定了共用的宏"单击",每次加入后,按钮的编号都发生了变化,关闭工作表时,删除了全部按钮,

比如,现在把其中的一个按钮删除,就会发生错误.....

回复

使用道具 举报

发表于 2009-12-18 12:16 | 显示全部楼层


Sub 点击()
    Dim MyBut
    For Each MyBut In ActiveSheet.Shapes
        If MyBut.Name = ActiveSheet.Shapes(Application.Caller).Name Then
            MsgBox MyBut.AlternativeText
            MyBut.DrawingObject.Font.ColorIndex = 1
        Else
            MyBut.DrawingObject.Font.ColorIndex = 3
        End If
    Next MyBut
End Sub
回复

使用道具 举报

 楼主| 发表于 2009-12-18 13:38 | 显示全部楼层

QUOTE:
以下是引用amulee在2009-12-18 12:16:00的发言:

Sub 点击()
    Dim MyBut
    For
  Each MyBut In ActiveSheet.Shapes
        If MyBut.Name = ActiveSheet.Shapes(Application.Caller).Name Then
            MsgBox MyBut.AlternativeText
            MyBut.DrawingObject.Font.ColorIndex = 1
        Else
            MyBut.DrawingObject.Font.ColorIndex = 3
        End
  If
    Next MyBut
End
  Sub

 MyBut.DrawingObject.Font.ColorIndex = 3出现错误"438",对象不支持该属性或方法.

再麻烦您指教一下.谢谢.

回复

使用道具 举报

发表于 2009-12-18 13:46 | 显示全部楼层    本楼为最佳答案   

QUOTE:
以下是引用走进EXCEL在2009-12-18 13:38:00的发言:

 MyBut.DrawingObject.Font.ColorIndex = 3出现错误"438",对象不支持该属性或方法.

再麻烦您指教一下.谢谢.

按照你的附件不应该出现这个问题,是不是有其他对象。

Sub 点击()
    Dim MyBut
    On Error Resume Next
    For Each MyBut In ActiveSheet.Shapes
        If MyBut.Name = ActiveSheet.Shapes(Application.Caller).Name Then
            MsgBox MyBut.AlternativeText
            MyBut.DrawingObject.Font.ColorIndex = 1
        Else
            MyBut.DrawingObject.Font.ColorIndex = 3
        End If
    Next MyBut
End Sub

回复

使用道具 举报

 楼主| 发表于 2009-12-18 13:56 | 显示全部楼层

QUOTE:
以下是引用amulee在2009-12-18 13:46:00的发言:

按照你的附件不应该出现这个问题,是不是有其他对象。

Sub 点击()
    Dim MyBut
    On Error Resume Next
    For Each MyBut In ActiveSheet.Shapes
        If MyBut.Name = ActiveSheet.Shapes(Application.Caller).Name Then
            MsgBox MyBut.AlternativeText
            MyBut.DrawingObject.Font.ColorIndex = 1
        Else
            MyBut.DrawingObject.Font.ColorIndex = 3
        End If
    Next MyBut
End Sub

谢谢您了,顺利通过,万分感谢!!!!

回复

使用道具 举报

发表于 2009-12-19 06:04 | 显示全部楼层

学习[em02][em02]
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-6-6 15:59 , Processed in 0.716453 second(s), 8 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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