收到網友A的一個提問,要一次複製多個文件到微信或QQ中,複製文件比較多,每天更新後要發給不同部門的同事,操作比較煩瑣,有什麼好方法解決?
其實,PC端的微信與QQ都有這樣的功能,按Ctrl鍵選中多個文件,Ctrl+C複製,在對話框中Ctrl+V粘貼,按發送就能把多個文件發過去。
網友A當然知道這個功能,問題是要選中多個文件,必須在同一個文件夾中,如果不在同一文件夾,就無法複製了。
確實,如果不在同一文件夾下,多次複製文件是比較麻煩的。好吧,寫段代碼,讓網友A點一下鼠標就能實現複製多個文件這一功能。
不多說,先來個效果圖
代碼的思路很簡單:列出要複製文件路徑,把文件複製到剪貼板中
<code>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/<code>
關鍵是Powershell中的語句:
<code># 路徑單引號括住,逗號隔開
$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)/<code>
PS:代碼引用了Powershell,win7及以上的系統是自帶的。如果系統太落後,可以用api來實現。
如果你喜歡本文,請轉發分享一下,想要獲得更多信息,關注我吧!
閱讀更多 Excel大咖 的文章