选中excel单元格后把求和sum()拷贝到剪贴板
(2018-01-20 00:23:49)分类: 技术分析工具 |
这是个很实用的技巧,免得你先用=sum()算出来再拷贝粘贴了.
With New
MSForms.DataObject
'.SetText Application.Sum(Selection)
'.SetText Application.Subtotal(9, Selection)
.SetText
Application.Sum(Selection.SpecialCells(xlCellTypeVisible))
.PutInClipboard
End With
方法:
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
End If
End Sub
附录:关于dataobject:
http://club.excelhome.net/thread-1354028-1-1.html
DataObject对象中可以同时储存多个文本,但它们每一个存入时的数据格式必须不同
也即对于同一种数据格式,DataObject对象中只能保存最近的一次存入
存入的文本格式,可以用非1的数字表示或者是字符串,这个格式将作为下次取文本时的索引参数