如何一次复制多个文件到微信,QQ
收到网友A的一个提问,要一次复制多个文件到微信或QQ中,复制文件比较多,每天更新后要发给不同部门的同事,操作比较烦琐,有什么好方法解决?
其实,PC端的微信与QQ都有这样的功能,按Ctrl键选中多个文件,Ctrl C复制,在对话框中Ctrl V粘贴,按发送就能把多个文件发过去。
网友A当然知道这个功能,问题是要选中多个文件,必须在同一个文件夹中,如果不在同一文件夹,就无法复制了。
确实,如果不在同一文件夹下,多次复制文件是比较麻烦的。好吧,写段代码,让网友A点一下鼠标就能实现复制多个文件这一功能。
不多说,先来个效果图
代码的思路很简单:列出要复制文件路径,把文件复制到剪贴板中
Sub getClipboard() Dim fileList As String, pscode As String arr = Range("A2:A5") '文件路径 For i = 1 To UBound(arr) fileList = fileList & ",'" & arr(i, 1) & "'" Next fileList = Mid(fileList, 2, 999) '文件列表 pscode = "powershell $filelist =" & fileList & vbCrLf & _ "$col = New-Object Collections.Specialized.StringCollection " & vbCrLf & _ "foreach($file in $filelist){$col.add($file)}" & vbCrLf & _ "Add-Type -AssemblyName System.Windows.Forms" & vbCrLf & _ "[Windows.Forms.Clipboard]::setfiledroplist($col)" Shell pscode, vbHide '执行代码并隐藏窗口 MsgBox "文件已复制!" End Sub
关键是Powershell中的语句:
# 路径单引号括住,逗号隔开 $filelist ='C:\a.txt','D:\log_file.txt','E:\日报.xlsx','F:\文件\abc.txt' #储存字符串的集合,相当于数组 $col = New-Object Collections.Specialized.StringCollection #储存字符串的集合,相当于数组 foreach($file in $filelist){$col.add($file)} #加载程序集 Add-Type -AssemblyName System.Windows.Forms #放到剪贴板中 [Windows.Forms.Clipboard]::setfiledroplist($col)
PS:代码引用了Powershell,win7及以上的系统是自带的。如果系统太落后,可以用api来实现。
如果你喜欢本文,请转发分享一下,想要获得更多信息,关注我吧!
赞 (0)