加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

选中excel单元格后把求和sum()拷贝到剪贴板

(2018-01-20 00:23:49)
分类: 技术分析工具
这是个很实用的技巧,免得你先用=sum()算出来再拷贝粘了.

方法:
1.在vbe里面调用c:\windows\system32\FM20.dll, 然后引用MS Forms 2.0 Object Lib
2.写好如下的代码,然后按alt+F8 调出宏的选项窗口,赋予它快捷键,比如ctrl+B
这样就可以了. 这玩意的强大之处在于你可以打开带有这段的代码的xlsm文件,然后在其它不含有这段代码的xlsx文件中使用该快捷键.

Sub CopySum()
'http://excel-macro.tutorialhorizon.com/vba-excel-storing-multiple-data-in-the-windows-clipboard/
'http://dailydoseofexcel.com/archives/2014/04/30/copy-selection-sum-to-clipboard/
'gclsAppEvents.AddLog "^+c", "CopySum"
'Application.OnKey "^{q}", "CopySum"
If TypeName(Selection) = "Range" Then
   With New MSForms.DataObject
      '.SetText Application.Sum(Selection)
      '.SetText Application.Subtotal(9, Selection)
       .SetText Application.Sum(Selection.SpecialCells(xlCellTypeVisible))
       .PutInClipboard
   End With
End If
End Sub

附录:关于dataobject:
http://club.excelhome.net/thread-1354028-1-1.html
DataObject对象中可以同时储存多个文本,但它们每一个存入时的数据格式必须不同
也即对于同一种数据格式,DataObject对象中只能保存最近的一次存入
存入的文本格式,可以用非1的数字表示或者是字符串,这个格式将作为下次取文本时的索引参数

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有