前提:在excel中我用插入--》对象的方法插入多个avi文件'在ThisWorkbook模块中:
Private Sub Workbook_Open()
Dim b As Shape
For Each b In ThisWorkbook.ActiveSheet.Shapes
b.OnAction = "test"
Next
End Sub'在“模块1”中:
Public Sub test()
MsgBox TypeName(Selection)
End Sub当用户点击某一个avi shape时怎么弹出的对话框写的是“Range”而不是“OLEObject"呢?怎样才能解决?
Private Sub Workbook_Open()
Dim b As Shape
For Each b In ThisWorkbook.ActiveSheet.Shapes
b.OnAction = "test"
Next
End Sub'在“模块1”中:
Public Sub test()
MsgBox TypeName(Selection)
End Sub当用户点击某一个avi shape时怎么弹出的对话框写的是“Range”而不是“OLEObject"呢?怎样才能解决?
解决方案 »
- 急!!菜鸟求助访问sql数据库,设置时间段查询问题
- Adodc1.Recordset.Fields("图片").GetChunk 错误
- 如何判断一个字符串里的内容包含于另一个字段里的内容?
- 关于SQL查询IP地址的问题,我查了以前结的帖,实在没有我想要的答案,拜托各位大虾!
- 线条放大的问题,请问各位高手。
- 怎么看自己的blog?怎么用呢?
- 如何捕获POST时提交的头
- 如何 给出计算机名 自动获取相应的IP地址(用VB)?
- 大家帮我。又一次不错在哪里。找找是哪里错了。谢谢了。
- 帮帮我!关于DBcombo控件!
- VB高手帮忙解决问题,一个小程序!!!
- 高手帮忙看一下,执行存储过程的这个函数对不对?
Dim b As Shape
For Each b In ThisWorkbook.ActiveSheet.Shapes
b.OnAction = "'ThisWorkbook.Test """ & b.Name & """'"
Next
End SubSub Test(objName)
Dim sht As Worksheet
Set sht = ActiveSheet
With sht.Shapes(objName)
If MsgBox("是否打开对象 """ & objName & """", vbYesNo) = vbYes Then
.OLEFormat.Verb (xlVerbPrimary)
End If
End With
End Sub
我现在解决的方法是:在用户机器上应用加载宏的方式(就是在xlstart中建立xla文件),把指定宏的内容写到加载宏中,让每个shape指定宏都调用xla里的子程序。这样虽然不是很好,但是能解决我目前的问题。
如果不用xla文件都写在vb中,那就完美了,请问高手有没有更好的办法。