+ -
当前位置:首页 → 问答吧 → Excel执行删除shape报错,请高手赐教

Excel执行删除shape报错,请高手赐教

时间:2011-12-26

来源:互联网

我想实现的功能是这样,点击一个shape A 时,弹出一个泡泡,即shape B,然后给shape B指定个onAction.执行删除,可是实际执行代码中报错,“无法运行delshape(A_000016_note)宏,可能是因为该宏在此工作薄中不可用,或者所有的宏都被禁用。”
具体代码如下,请高手指导

VB code


'前面代码我就不贴了

'调用CreateNote函数,创建一个泡泡shape

 CreateNote FrameTop, FrameLeft, FrameWidth, FrameHeight, FrameStatus, FrameText, x, FrameAuthMan

'给shape B 指定onaction 
 
   ThisWorkbook.Worksheets(1).Shapes(x & "_Note").OnAction = "delShape(" & x & "_Note)"


'CreateNote函数

Sub CreateNote(top As Double, left As Double, width As Integer, height As Integer, status As String, text As String, ChartName As String, AuthMan As String)
    
    
        Dim mydocument As Worksheet
        Set mydocument = ThisWorkbook.Worksheets(1)
        
        
        mydocument.Shapes.AddShape(106, left, top, width, height).Name = ChartName & "_Note"
        
        With mydocument.Shapes(ChartName & "_Note").TextFrame
        
            .Characters.text = text & vbCrLf & "[" & status & "]" & vbCrLf & "责任人:" & AuthMan
            .Characters().Font.Size = 11
            .Characters(InStr(.Characters.text, "["), Len(.Characters.text) - InStr(.Characters.text, "[")).Font.Color = RGB(14, 74, 147)
            .Characters().Font.Name = "黑体"
          
                
        End With
      
        Set mydocument = Nothing
       
End Sub


'删除shape B函数

Sub delShape(Name As String)

    ThisWorkbook.Worksheets(1).Shapes(Name).Delete

End Sub



作者: dengyp2010   发布时间: 2011-12-26

该回复于2011-12-27 09:55:01被管理员删除

  • 对我有用[0]
  • 丢个板砖[0]
  • 引用
  • 举报
  • 管理
  • TOP
#2楼 得分:0回复于:2011-12-27 09:53:25
OnAction 定义为一个类中的方法时可以调用。

作者: dengyp2010   发布时间: 2011-12-27

楼上的朋友,没明白你的话是什么意思?

作者: henrryzhang   发布时间: 2011-12-27

热门下载

更多