Excel精英培训网

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

[已解决]OLEObject.Duplicate 方法

[复制链接]
发表于 2010-3-24 20:36 | 显示全部楼层 |阅读模式

在新建工作簿中插入1个activeX命令按钮后。

Sub aa()
Sheet1.CommandButton1.Duplicate
End Sub

运行后,1闪,完了!?

请问么看得出这句的作用?

谢谢!

最佳答案
2010-3-25 11:31

duplicate在英文中就是复制的意思。。。

复制后的控件可以为你所用,你可以在代码中随意创建,也可以删除。

Sub Test()
    Dim objcmd As Object
    Set objcmd = CommandButton1.Duplicate
    objcmd.Left = [A1].Left
    objcmd.Top = [A1].Top
    MsgBox "删除该控件"
    objcmd.Delete
End Sub

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
 楼主| 发表于 2010-3-24 20:55 | 显示全部楼层

郁闷,原来和复制粘贴很像,一下复制了6个,我说怎么点到按钮,名称框里出现的却是CommandButton7 ....?!

原来都复制在前1个按钮上面,拖动后,才发现 ..... [em06]

在有复制粘贴的方法下,为什么还要发明这样一个方法,难道有别的好处么[em09]?

谢谢!

回复

使用道具 举报

 楼主| 发表于 2010-3-24 21:45 | 显示全部楼层
回复

使用道具 举报

发表于 2010-3-24 22:12 | 显示全部楼层

[em01][em01]
回复

使用道具 举报

发表于 2010-3-25 11:31 | 显示全部楼层    本楼为最佳答案   

duplicate在英文中就是复制的意思。。。

复制后的控件可以为你所用,你可以在代码中随意创建,也可以删除。

Sub Test()
    Dim objcmd As Object
    Set objcmd = CommandButton1.Duplicate
    objcmd.Left = [A1].Left
    objcmd.Top = [A1].Top
    MsgBox "删除该控件"
    objcmd.Delete
End Sub

回复

使用道具 举报

发表于 2010-3-25 11:35 | 显示全部楼层

猜想速度快一些。

两都适用的对象不完全一样的,复制粘贴很常见。适用范围宽,也不只Excel里有。而Duplicate比较专用

回复

使用道具 举报

 楼主| 发表于 2010-3-25 11:44 | 显示全部楼层

谢谢阿木、吕布!

存在,必然有道理。。。。。。。。可道理,我却不知道[em19]

特别是针对复制,一定有更好之处,要有办法证明就好了[em11]

回复

使用道具 举报

发表于 2010-3-25 12:22 | 显示全部楼层

代码不是快嘛。。。
回复

使用道具 举报

 楼主| 发表于 2010-3-25 14:39 | 显示全部楼层

谢谢阿木!

只好等下次有问题再看了

[em11]
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-17 02:06 , Processed in 0.274198 second(s), 8 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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