Excel精英培训网

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

[已解决]点击形状改变显示文字

[复制链接]
发表于 2013-7-10 11:16 | 显示全部楼层 |阅读模式
我画了这样一个形状,怎样实现:我点击它一次,文字“展开”->"收起",再点击一次,“收起”->“展开”。应该可以实现吧?请高手指教,谢谢。
最佳答案
2013-7-10 12:02
Sub b()
    Dim r&
    With ActiveSheet
        r = .UsedRange.Rows.Count
        .Rows("2:" & r).RowHeight = IIf(.Range("a2").Height, 0, 13.5)
        .Shapes(1).TextFrame2.TextRange.Characters.Text = IIf(.Range("a2").Height, "收起", "展开")
    End With
End Sub
求助2.rar (15.55 KB, 下载次数: 99)
无标题.png
发表于 2013-7-10 11:27 | 显示全部楼层
回复

使用道具 举报

发表于 2013-7-10 11:39 | 显示全部楼层
  1. Sub df()
  2.     With ActiveSheet.Shapes(1).TextFrame2.TextRange.Characters
  3.         If .Text = "展开" Then
  4.             .Text = "收起"
  5.         ElseIf .Text = "收起" Then
  6.             .Text = "展开"
  7.         End If
  8.     End With
  9. End Sub
复制代码
把这个形状指定给这个宏就可以了。
回复

使用道具 举报

发表于 2013-7-10 11:45 | 显示全部楼层
  1. Sub 圆角矩形1_Click()
  2.     Dim shp As Shape
  3.     Set shp = ActiveSheet.Shapes(1)
  4.     With shp.TextEffect
  5.         Select Case .Text
  6.             Case "展开"
  7.                 .Text = "收起"
  8.             Case "收起"
  9.                 .Text = "展开"
  10.         End Select
  11.     End With
  12.    
  13. End Sub
复制代码
回复

使用道具 举报

发表于 2013-7-10 12:02 | 显示全部楼层    本楼为最佳答案   
Sub b()
    Dim r&
    With ActiveSheet
        r = .UsedRange.Rows.Count
        .Rows("2:" & r).RowHeight = IIf(.Range("a2").Height, 0, 13.5)
        .Shapes(1).TextFrame2.TextRange.Characters.Text = IIf(.Range("a2").Height, "收起", "展开")
    End With
End Sub
求助2.rar (15.55 KB, 下载次数: 99)
回复

使用道具 举报

 楼主| 发表于 2013-7-10 12:56 | 显示全部楼层
爱疯 发表于 2013-7-10 12:02
Sub b()
    Dim r&
    With ActiveSheet

谢谢谢谢。以后一定都带附件。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-26 04:24 , Processed in 0.780171 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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